홈 › 중급 › 01 / 9

상속, 다형성, 오버라이딩

섹션 7진행 0 / 9

7. 정리

  • 자식 객체는 힙에 하나의 블록으로 만들어지며, 생성자는 항상 부모 → 자식 순서로 실행된다(super() 자동 삽입).
  • 오버라이딩은 시그니처 동일 + 접근 범위 축소 불가 + checked 예외 확장 불가 + 공변 반환 허용. @Override는 항상 붙인다.
  • 인스턴스 메서드는 vtable을 통한 동적 바인딩(실제 객체 기준), 필드/static은 정적 바인딩(변수 타입 기준).
  • 코드 재사용이 목적이면 상속 대신 컴포지션. 상속은 진짜 is-a 관계 + 다형성이 필요할 때만.
  • equals를 오버라이딩하면 hashCode도 반드시. 값 객체는 record로 만들어 실수를 없앤다. sealed + switch 패턴 매칭으로 빠짐없는 분기를 컴파일러에게 맡긴다.

다음 레슨 02. 추상 클래스와 인터페이스에서는 "구현 없이 계약만 정의하는" 방법과, 상속 없이도 다형성을 얻는 인터페이스 설계를 다룬다.