#[상속]
#하위클래스의생성순서
#상위클래스생성자호출
#[super]
#[protected]
#[overriding]
#업캐스팅(upcasting)
#[묵시적형변환]
#상속에서의상위클래스와하위클래스의메모리상태
#가상메서드
#[다형성]
#다운캐스팅
#instanceof
#명시적형변환
IS - A관계는 일반적인(general)개념과 구체적인(specific)개념과의 관계를 뜻합니다. 한 클래스와 다른 클래스가 IS-A관계 일 때 상속을 사용합니다.
상위 클래스는 일반적인 개념 클래스이고(예 포유류) 하위 클래스는 구체적인 개념 클래스(예: 사람, 원숭이, 고래..)에 속합니다.
클래스간에 상속관계가 만들어지면 클래스간에 관계가 타이트해져서 상위 클래스에 변화를 주면 하위클래스에 영향을 주게 됩니다. 그렇기에 단순히 코드를 재사용하는 목적으로 상속을 사용하지는 않습니다.
반면에 HAS-A관계는 한 클래스가 다른 클래스를 소유한 관계로 코드 재사용의 한 방법입니다.
만약 우리가 ArrayList클래스를 사용하고 싶다면 ArrayList extends하여 사용 하는 것이 아닌 인스턴스를 하나 생성해서 사용하는 것 같이 필요한 코드를 재사용을 위해선 생성해서 사용하면 됩니다.
썸네일: oneook