상속이란 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다.
적은양의 코드, 공통적으로 관리가 가능하며 코드의 중복을 제거하고 재사용성을 높인다.
class Child extends Parent{// . . . }
상속받고자하는 클래스를 extends를 통해 추가해주면 된다.
상속을 해주는 클래스는
상속을 받는 클래스는
자손클래스는 조상클래스의 모든 멤버를 상속받는다.
조상클래스의 변동은 자손클래스에 영향을 주지만,
자손클래스의 변동은 조상클래스에 영향을 주지않는다.
생성자와 초기화블럭은 상속되지 않는다.
only 멤버만 상속된다.
접근제어자가 private 또는 default인 멤버는 상속은 받지만,
자손클래스로부터 접근이 제한된다.
만약 두 sub클래스가 하나의 super클래스를 상속받을 때,
sub클래스 간에는 아무런 관계도 성립되지 않는다.
sub클래스들의 코드를 변경이 필요한 경우
sub클래스들의 super클래스에서 코드를 한 번에 변경할 수 있다.
자손클래스의 인스턴스를 생성하면 조상클래스의 멤버와 자손클래스의 멤버가 합쳐진 하나의 인스턴스로 생성된다.
Parent클래스를 상속받는 Child 클래스를 상속받는 GrandChild클래스가 존재할 때,
Parent클래스와 GrandChild클래스는 상호간에 간접조상이며 간접적으로 상속관계이다.