📚 참고
자바의 정석 기초편 (객체지향개념만)
상속
- 기존 클래스로 새로운 클래스를 작성하는 것 (코드의 재사용)
- 두 클래스를 부모 - 자식 관계로 맺어주는 것
class 자식클래스 extends 부모클래스 {
// ...
}
- 자손은 조상(부모의 부모를 포함할 수 있어 조상이라고 표현)의 모든 멤버를 상속 받는다.
- 자손의 멤버(iv, im) 개수는 조상보다 적을 수 없다. (같거나 많음)
class Parent {
int age;
}
class Child extends Parent { }
- Parent class 멤버 개수 : 1개
- Child class 멤버 개수 : 0개 (자신이 가지고 있는 멤버) + 1개 (상속 받은 멤버) = 총 1개
- 자손의 변경은 조상에 영향을 미치지 않는다.
- Parent class를 이용해서 Child 클래스를 extends 하겠다.
class Parent {
int age;
}
class Child extends Parent {
void play() {
System.out.println("놀자");
}
}
- Parent class 멤버 개수 : 1개 (age)
- Child class 멤버 개수 : 2개 (age, play)
비교
// 2차원 좌표의 한 점
class Point {
int x;
int y;
}
// Point 클래스와 관계없는 클래스
class Point3D {
int x;
int y;
int z;
}
- Point3D 클래스는 Point 클래스에 영향을 받지 않는다.
// Point 클래스와 상속관계
class Point3D extends Point {
int z;
}
- Point3D 클래스는 Point 클래스에 영향을 받는다.
- 예를 들어, Point3D 멤버의 갯수는 3개인데 Point의 y 변수가 사라지면 Point3D 클래스도 영향을 받아 멤버 갯수가 2개로 줄어든다.