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

+ Recent posts