상속 (Inheritance)
- 기존의 클래스로 새로운 클래스를 작성하는 것. (코드의 재사용)
- 두 클래스를 부모와 자식으로 관계를 맺어주는 것.
상속으로 작성하는 방법
>>
class 자식클래스 extends 부모클래스 { // extends : 키워드
// .....
}
- 자손은 조상(부모의 부모)의 모든 멤버를 상속받는다. (생성자, 초기화블럭 제외)
- 자손의 멤버 개수는 조상보다 적을 수 없다. (같거나 많다.)
코드와 다이어그램
class Parent {
int age; // 부모는 멤버 1개
}
class Child extends Parent { } // 자신의 멤버 0개, 부모로 부터 상속받은 멤버 1개 ; 멤버 1개
- 자손의 변경은 조상에 영향을 미치지 않는다.
코드와 다이어그램
class Parent {
int age; // 멤버 1개
}
class Child Parent {
void play() {
System.out.println("놀자 ~"); // 자신 멤버 1개, 상속받은 멤버 1개 ; 멤버 2개
}
}
클래스 포인트 : 2차원 좌표의 한점 (0,0)
Class point {
int x; // (0 (x값),0 (y값))
int y;
}
-> 3차원 좌표의 한점(x,y,z) 으로 만들 수 있는 두가지 방법이 있음
1. point 클래스와 관계없는 코드
class Point3D {
int x;
int y;
int z;
}
-> 멤버가 3개
2. point 클래스 상속 코드
class Point3D extends Point {
int z;
}
-> 멤버가 3개
but , 부모인 point 클래스에서 int y 가 삭제되면
Point3D 의 멤버는 2개
'자바의 정석 - 기초편' 카테고리의 다른 글
단일상속, Object클래스 (0) | 2022.08.17 |
---|---|
클래스 간의 관계, 상속과 포함 (0) | 2022.08.16 |
No enclosing instance of type* is accessible 오류가 나는 경우 (0) | 2022.08.10 |
변수의 초기화, 멤버변수의 초기화 (0) | 2022.08.09 |
생성자 this(), 참조변수 this (0) | 2022.08.08 |