Overloading
메소드 오버로딩은 같은 이름의 메소드를 여러 개 정의하는 것을 의미합니다.
메소드 오버로딩을 통해 동일한 기능을 수행하지만 매개변수의 타입, 개수, 순서 등이 다른 여러 메소드를 정의할 수 있습니다.
메소드 오버로딩의 사용 예시:
class Calculator {
int left, right;
int third = 0;
public void setOprands(int left, int right) {
this.left = left;
this.right = right;
}
public void setOprands(int left, int right, int third) {
this.left = left;
this.right = right;
this.third = third;
}
}
c1.setOperands(10, 20);
c1.setOperands(10, 20, 30);
Overriding
메소드 오버라이딩은 상속 관계에서 부모 클래스의 메소드를 자식 클래스에서 재정의하는 것을 의미합니다. 이를 통해 부모 클래스의 기능을 필요에 따라 자식 클래스에서 변경하거나 확장할 수 있습니다.
규칙:
장점:
메소드 오버라이딩의 사용 예시:
class Parent {
public int avg() {
// 부모 클래스의 기본 평균 계산 로직
}
}
class Child extends Parent {
@Override
public int avg() {
int average = super.avg(); // 부모 클래스의 avg() 메소드 호출
// 추가적인 로직 수행
return average;
}
}