Inheritance

상속 - 클래스의 설계(행위적인 측면)

수평적 설계

  • 코드의 중복이 발생
  • 새로운 요구사항에 대한 코드의 수정이 불가피함
  • 관리하기가 어려움

수직적 설계(계층화, 상속구조)

  • 수평적 설계의 단점 극복
  • 확장 쉽게 가능
  • 코드가 복잡해짐 -> 이점이 많음

super class(상위, 부모) / sub class(하위, 자식)

POINT! 상속 관계에 있을 때 객체 생성을 어떻게 해야하는지

상속 관계를 메모리적으로 이해해야 함

모든 클래스의 최상위 클래스(Root class)는 Object 클래스

super() : 자신의 생성자에서 부모의 생성자를 호출

메모리에 부모가 먼저 생성되고 그 다음 자식이 생성된다. 부모부터 객체가 만들어짐(상속체이닝)

상속 관계에서 객체생성 방법

상위 클래스를(부모를) 활용

Animal d = new Dog(); // 간접
Dog d = new Dog(); // 직접

부모 클래스를 이용하는 방식 - 하위 클래스의 동작 방식을 모를 때, 간접 이용 (.class(실행) 파일만 있고, .java(소스) 파일이 없는 경우)


Written by@Myunghwan
Nothing changes if nothing changes

GitHub