반응형
Overriding
상위 클래스의 메서드와 이름과 용례(signature)가 같은 함수를 하위 클래스에 재정의하는 것을 말한다.
ex)
public abstract class Shape {
public void printMe() { System.out.println("Shape"); }
public abstract double computeArea();
}
public class Circle extends Shape {
private double rad = 5;
@Override // 개발자의 실수를 방지하기 위해 @Override(annotation) 쓰는 것을 권장
public void printMe() { System.out.println("Circle"); }
public double computeArea() { return rad * rad * 3.15; }
}
public class Ambiguous extends Shape {
private double area = 10;
public double computeArea() { return area; }
}
Overloading
두 메서드가 같은 이름을 갖고 있으나 인자의 수나 자료형이 다른 경우를 말한다.
ex)
public double computeArea(Circle c) { ... }
public double computeArea(Circle c1, Circle c2) { ... }
public double computeArea(Square c) { ... }
결론
1. 오버로딩 : 같은 동작을 해야 하는 메소드를 작성해야 하는데 매개변수가 다른 경우.
2. 오버라이딩 : 상속 받은 메소드를 다시 정의하고 싶을때.
반응형
'개발 > Java' 카테고리의 다른 글
[Java] JVM이란? (0) | 2023.10.24 |
---|---|
[Java] ArrayList에서 int array 변환 방법 (0) | 2023.10.23 |
[Java] 변수의 종류 (0) | 2023.10.16 |
[Java] 접근 제어자(Access Modifier) (0) | 2023.10.16 |
[Java] 사용자 정의 예외의 특징과 사용법 (0) | 2023.10.16 |