12.3 override, final, 공변 반환값

보물창고·2021년 8월 12일
0
post-thumbnail

오버라이드 키워드

  • 예시

    -> 부모 클래스의 print 함수의 매개변수는 int이고, 파생 클래스의 print 함수의 매개변수는 short이다.
    매개변수가 다르기 때문에 오버라이드가 되지 않았다.
    컴파일러는 그냥 이름은 같지만, 다른 함수로 보고 있다는 것이다.
    유저가 원하는 결과가 아니다.
    오버라이딩 함수로 사용하기 위해서는 함수뒤에 override를 추가하자.

  • override를 명시함으로써 컴파일러가 잘못되었음을 나타내고 잇다.

  • 함수이름이 다르더라고 override를 통해 잘못됨을 확인할 수 있다.

  • const를 쓸 경우에도 반드시 virtual 명시한 클래스와
    일치시켜야 한다

final 키워드

: 더이상 오버라이드를 금지하게 하는 키워드이다.

  • B 클래스에서 final 사용

  • 부모인 A클래스에서 final 사용

    -> 밑의 모든 파생 클래스에서 오버라이드 못함!

profile
🔥🔥🔥

0개의 댓글