728x90
상속
기존 클래스(부모)로 새로운 클래스(자식)를 작성하는 것 - 코드의 재사용
공통되는 속성이나 기능들을 반복적으로 작업할 필요가 없어짐
다형적 속성도 표현 가능
class 조상클래스 {
String first_name = "홍"; //조상클래스로 받아옴
String home = "ㅇㅇ시 ㅇㅇ동 ㅇㅇ아파트";
}
class 부모클래스 extends 조상클래스{
String first_name = "홍"; //조상클래스로 받아옴
String home = "ㅇㅇ시 ㅇㅇ동 ㅇㅇ아파트"; //부모클래스의 멤버
}
class 자손클래스 extends 부모클래스 {
//부모 및 조상의 모든 멤버를 상속 받음 (생성자, 초기화블럭 제외)
//자손의 멤버 개수는 조상과 같거나 많음
//자손의 변경은 조상에 영향을 주지 않음
String first_name = "홍"; //조상클래스로 받아옴
String home = "ㅇㅇ시 ㅇㅇ동 ㅇㅇ아파트"; //부모클래스로부터 받아옴
String name = "길동"; //자손클래스에만 존재하는 멤버
}
자바의 상속은 다중 상속을 허용하지 않음. 오로지 단일 상속만 가능
포함
클래스의 멤버로 참조변수를 선언하는 것
class Point { // 1.작은 단위의 클래스를 만들고
int x;
int y;
}
class Circle { // 2.작은 단위 클래스들을 조합해서 하나의 클래스를 만드는 것
Point c = new Point(); // Circle이 Point를 포함한 관계
int r;
}
상속 / 포함 관계 결정하기
상속관계 = A는 B이다 (A is B)
포함관계 = A는 B를 가지고 있다 (A has B) . 포함을 상속보다 자주 사용함
원은 점이다 / 원은 점을 가지고 있다 => 포함관계가 더 어울림
단일상속
자바는 단일상속만 허용하기 때문에
비중이 가장 높은 클래스 하나만 상속관계로 받고 나머지는 포함관계로 받음
Object 클래스
모든 클래스의 조상으로 부모가 없는 클래스는 컴파일러가 자동적으로 Object 클래스를 상속 받게함
모든 클래스는 Object 클래스에 정의된 11개의 메소드를 상속 받음
'Java > Notion' 카테고리의 다른 글
super, super() (0) | 2023.04.24 |
---|---|
오버라이딩 (Overriding) (0) | 2023.04.24 |
Class / Method (0) | 2023.04.24 |
ArrayList (0) | 2023.04.23 |
Math (0) | 2023.04.23 |