오버라이딩

배지원·2022년 9월 26일
0

JAVA

목록 보기
13/32

1. 오버라이딩(Overriding)

  • 상속 관계에 있는 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 같은 시그니처를 갖는 메소드로 다시 정의하는 것
  • 상속받은 부모 클래스의 메소드를 재정의

조건

  • 선언부가 조상 클래스의 메서드와 일치해야 한다.(void display())
  • 접근 제어자는 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
  • 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.(public,protected...)
  • 오버라이딩하면 @Override으로 표시를 해주는게 좋음
class Parent {
    void display() { System.out.println("부모 클래스의 display() 메소드입니다."); 
    }  
}

class Child extends Parent {		// 오버라이딩
	@Override						// 오버라이딩 하면 표시를 해주는게 좋음
    void display() { System.out.println("자식 클래스의 display() 메소드입니다."); 
    }   
}

 
public class Inheritance05 {
    public static void main(String[] args) {
        Parent pa = new Parent();		
        pa.display();				// 기존 부모의 값
        Child ch = new Child();
        ch.display();				// 오버라이딩하여 자식의 값
        Parent pc = new Child();	// 부모클래스에 자식클래스 대입
        pc.display(); // Child cp = new Parent();
    }
}
-- 결과 --
부모 클래스의 display() 메소드입니다.
자식 클래스의 display() 메소드입니다.
자식 클래스의 display() 메소드입니다.

2. 오버로딩 VS 오버라이딩

  • 오버로딩 : 기존에 없는 새로운 메서드를 정의하는 것(new)
  • 오버라이딩 : 상속받은 메서드의 내용을 변경하는 것(change, modify)
profile
Web Developer

0개의 댓글