상속이란 기존의 클래스로 새로운 클래스를 작성하는 것 (코드의 재사용)
두 클래스를 부모와 자식으로 관계를 맺어주는 것.
조상 클래스 : 부모(parent)클래스, 상위(super)클래스, 기반(base)클래스
자손 클래스 : 자식(child)클래스, 하위(sub)클래스, 파생된(derived)클래스
class 자식클래스 extends 부모클래스 {
//...
{
🤔 기존에 부모 클래스가 존재하고 extends라는 키워드를 사용하여 자식 클래스와 관계를 맺어준다.
자손은 조상의 모든 멤버를 상속 받는다.(생성자, 초기화 블럭 제외)
자손의 멤버 개수는 조상보다 같거나 많다.
자손의 변경은 조상에 영향을 미치지 않는다.
부모가 변경되면 자식의 손자까지 변경된다.
class Circle {
int x; // 원점의 x 좌표 -> 저장공간 1
int y; // 원점의 y 좌표 -> 저장공간 2
int r; // 반지름(radius) -> 저장공간 3
//총 3개의 저장 공간
}
class Point {
int x; // x 좌표
int y; // y 좌표
}
이렇게 두개의 클래스가 있다고 가정한다.
class Circle {
Point c = new Point();
int r;
//참조변수를 포함하는 관계 이기 때문에 위의 class Circle 과 저장공간이 같은 개수가 된다.
// 이것을 포함 관계라고 한다.
}
상속 관계 : 원(Circle)은 점(Point)이다. is a ~
포함 관계 : 원(Circle)은 점(Point)을 가지고 있다. has a ~
Java 는 단일 상속만 가능 (하나의 부모만 상속)
만약 다중상속이 필요하다면 비중이 높은 클래스 하나만 상속관계, 나머지는 포함관계로 한다.(324p)
이 게시물은 자바의 정석 책을 요약한 내용입니다.