728x90
Overriding
- 부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의하여 사용.
- 상속의 관계에 있는 클래스 간에 하위 클래스가 상위 클래스와 완전 동일한 메소드를 덮어쓴다.
- 이름과 반환형이 같으면서 매개변수의 개수와 타입까지 같은 메소드
- 자식 클래스는 부모 클래스의 private 멤버를 제외한 모든 메소드를 상속 받는다.
Overriding 조건
- 오버라이딩이란 메소드의 동작만을 재정의 하는 것. 메소드의 선언부는 기존 메소드와 완전히 동일해야 한다.
- 메소드의 반환 타입은 부모 클래스의 반환 타입으로 변환할 수 있는 타입이라면 변경 가능.
- 부모 클래스의 메소드보다 접근 제어자를 더 좁은 범위로 변경할 수 없다.
- 부모 클래스의 메소드보다 더 큰 범위의 예외를 선언할 수 없다.
Overriding 예제
class Parent {
void display() { System.out.println("부모 클래스의 display() 메소드입니다."); }
}
class Child extends Parent {
void display() { System.out.println("자식 클래스의 display() 메소드입니다."); }
}
public class Test {
public static void main(String[] args) {
Parent pa = new Parent();
pa.display();
Child ch = new Child();
ch.display();
Parent pc = new Child();
pc.display();
}
}
// 부모 클래스의 display() 메소드입니다.
// 자식 클래스의 display() 메소드입니다.
// 자식 클래스의 display() 메소드입니다.
728x90
'Java & Spring' 카테고리의 다른 글
[JAVA] Access Modifier 접근 제어자 (0) | 2022.03.25 |
---|---|
[JAVA] Overloading 오버로딩 (0) | 2022.03.24 |
[JAVA] Immutable Object(불변객체) (0) | 2022.03.22 |
[JAVA] String, StringBuilder, StringBuffer 차이 (0) | 2022.03.21 |
[JAVA] StringBuilder 사용법. 특징 (0) | 2022.03.20 |