이전에 만든 클래스와 닮았지만, 일부 다른 클래스를 만들 필요가 있을 때 사용한다.
쉽게 말하면 기능의 확장이다.
앞에서는 짧은 코드들을 만들었기 때문에 복사와 붙여넣기로 충분히 해결할 수 있다.
하지만 시간이 길어지고 여러 사람이 같이 만들었을 경우 추가와 수정에 시간이 걸리고 소스 파악이나 관리가 어려워진다.
그래서 사용하는 것이 '상속' 이다.
상속관계의 표현을 그림으로 나타낸 모습
다중상속은 Java 에서 할 수 없다.
올바른상속은 'is-a 원칙' 이라고 하는 규칙에 따른 상속
SuperHero is a Hero
(SuperHero 는 Hero의 한 종류 이다)
자식클래스 일 수록 '구체화' 되고
부모클래스 일 수록 '추상적' 인 것으로 일반화된다.
쉽게 말해서 큰 의미의 케릭터 안에 히어로와 위자드라는 케릭터가 있다.
히어로와 위자드에서 더 구체적인 슈퍼히어로와 그레이트위자드가 포함이 되어있는 것이다.