상속 (Inheritance)
기존의 클래스로 새로운 클래스를 작성하는 것 ( 코드의 재사용)
두 클래스를 부모와 자식으로 관계를 맺어주는 것
class 자식 클래스 extends 부모 클래스 {
...
}
class Parent { }
class Child extends Parent {
...
}
상속의 규칙
- 자손은 조상의 모든 멤버를 상속 받음 (생성자, 초기화 블럭 예외)
- 자손의 멤버 개수는 조상보다 적을 수 없음 (항상 같거나 많음)
- 자손의 변경은 조상에 영향을 미치지 않음
- 부모 클래스에 변경이 있다면 자식클래스에 영향을 줌
포함 (composite)
클래스의 멤버로 참조변수를 선언하는 것
작은 단위의 클래스를 만들고, 이들을 조합해서 클래스 만듦
클래스 간의 관계 결정하기
상속관계 : ~는 ~이다 (is - a)
포함관계 : ~는 ~을 가지고 있다 (has - a)
단일 상속 (Single Inheritance)
하나의 부모만 상속받는 것
- java는 단일 상속만 허용 (C++은 다중 상속 허용)
- 비중이 높은 클래스 하나만 상속 관계로, 나머지는 포함 관계로 함
Object 클래스
모든 클래스의 조상
- 부모가 없는 클래스는 자동적으로 Object 클래스를 상속받게 됨 ( class 클래스 이름 extends Object {...} )
- 모든 클래스는 Object 클래스에 정의된 11개의 메서드를 상속받음
ex) toString(), equals(Object obj), hashCode(), ...
'JAVA > 자바의 정석' 카테고리의 다른 글
[자바의 정석 - 기초편] 7. (3) 참조변수 super / 생성자 super() (0) | 2023.11.29 |
---|---|
[자바의 정석 - 기초편] 7. (2) 오버라이딩 (overriding) / 오버로드 (overload) (0) | 2023.11.29 |
[자바의 정석 - 기초편] 6. (9) 생성자 this() / 참조변수 this / 변수의 초기화 / 멤버 변수의 초기화 (0) | 2023.11.29 |
[자바의 정석 - 기초편] 6. (8) 생성자 / 생성자 규칙 / 기본 생성자 / 매개변수가 있는 생성자 (0) | 2023.11.29 |
[자바의 정석 - 기초편] 6. (7) 오버로딩 (0) | 2023.11.29 |