오버라이딩 / java

aljongjong·2021년 8월 29일
0

맨날까먹는거

목록 보기
4/13

메소드 오버라이딩(Method Overriding)

  • 상위 클래스에 정의된 메소드를 하위 클래스에서 다시 정의하는 것
  • 무효화 시키다.

  • 메소드의 이름, 메소드의 반환형, 메소드의 매개변수 선언 —> 이 세 가지가 같아야 ‘메소드 오버라이딩’ 성립
  • Cake의 yummy 메소드를 CheeseCake의 yummy 메소드가 오버라이딩
  • 오버라이딩을 하면, 참조변수의 형에 상관없이 오버라이딩 한 메소드가(CheeseCake의 yummy 메소드) 오버라이딩 된 메소드를(Cake의 yummy 메소드) 대신한다.
  • Cake c1 = new CheeseCake(); Cake형 참조변수로 CheeseCake 인스턴스를 참조, c1은 Cake형 참조변수이니 c1.yummy();의 경우 Cake의 yummy 메소드가 호출되어야 하지만 Cake의 yummy 메소드는 오버라이딩 되었다(무효화 되었다). 따라서 이 경우 CheeseCake의 yummy 메소드가 대신 호출이 된다.

  • 상위 클래스의 생성자를 호출할 목적으로 사용된 키워드 super를 통해 상위 클래스에 정의된, 오버라이딩 된 메소드의 호출을 목적으로도 super가 사용된다.

❤️‍🔥인스턴스 변수와 클래스 변수, 클래스 메소드는 오버라이딩 대상이 아니다.


어노테이션 @Override

  • 자바 컴파일러에게 이 메소드는 상위 클래스의 메소드를 오버라이딩 할 목적으로 정의하였다고 전달
  • 컴파일러는 오버라이딩이 제대로 되었는지 확인을 하고, 프로그래머의 의도대로 오버라이딩이 되지 않았다면 컴파일 단계에서 에러 메시지를 전달한다.
  • 컴파일 과정에서 확인되지 않는 오류의 발생을 차단하는 하는데 도움을 준다.

0개의 댓글

관련 채용 정보