코드로 본 다형성의 의미

겉보기에는 같은 형

부모 클래스 변수에 자식 개체를 대입할 수 있음

  • 상속 (is-a 관계)
    • 반대로 자식 클래스 변수에 부모 개체 대입은 컴파일 에러
    • 당연히 상속 관계가 아닌 형제(?)관계 등은 대입하면 컴파일 에러

다형성의 선수 조건은 상속

  • 부모 자료형 변수에 대입
  • 함수의 부모 자료형 매개변수에 대입

개체들에 내리는 동일한 명령

부모 클래스에 메서드 시그니처를 명시해야 함

  • 그렇지 않으면 부모 클래스 변수에 메서드가 없어서 컴파일 오류 발생

오버라이딩

  • 자식 클래스에서 부모 클래스의 동일한 시그니처를 가진 메서드의 내용을 변경(덮어씀)

오버라이딩은 선택사항

오버라이딩은 선택 사항임

  • 상속에서 부모 동작 그대로 사용해도 괜찮음

복습 퀴즈

1)

int 형을 매개변수로 받는 print는 오버라이딩

2)

double 형을 받는 변수는 부모의 함수를 그대로 사용

  • 오버라이딩은 선택사항

0건의 항목