[상속] = 이전에 개발 했던걸 다음 단계에서도 그대로 써야 하거나 논리적으로 상하관계(부모자식관계) 가 있을 때 사용
상속관계에서는 자식공간에서 부모공간을 다 가져온 다음에 만들어지기 때문에
부모공간에서 먼저 생성자를 만들어줘야한다.
package class03;
// [상속]
// 이전에 개발 했던걸 다음 단계에서도 그대로 써야 하거나 논리적으로 상하관계(부모자식관계) 가 있을 때 사용
class Shape{ //모양 클래스: 부모, 상위 클래스
String name;
double area;
void showInfo() {
System.out.println(this.name+" "+ this.area);
}
Shape(){
System.out.println("Shape에서 호출한 기본 생성자");
}
}
class Circle extends Shape{ // 원 클래스 : 원은 모양이기 때문에 자식, 하위 클래스, extends를 사용하여 shape의 자식이라는 것을 표시
// extends는 한개밖에 상속 못받음
int radius;
Circle(){
// 모든 자식 생성자에서는
// 가장 먼저 부모의 기본 생성자를 호출한다!!!★★★★★
// 부모의 생성자를 호출하는 것이 생략되어있었다. -> super();
System.out.println("Circle에서 호출한 기본 생성자");
}
}
public class Test05 {
public static void main(String[] args) {
Circle c=new Circle();
// 부모의 멤버변수, 메서드를 자식이 사용 가능 c. 쳐보면 볼 수 있다.
System.out.println("----------");
Shape s=new Shape();
// 부모는 자식 클래스를 참조 할 수없음. s. 쳐보면 알 수 있다. (radius 안나옴)
}
}
'개발자노트' 카테고리의 다른 글
클래스) 상속의 상화관계 이해를 위한 "색깔점" 예제 (0) | 2022.06.20 |
---|---|
클래스) 상속, 생성자 호출 (0) | 2022.06.20 |
클래스) private , getter, setter (0) | 2022.06.20 |
클래스) 접근제어자 (0) | 2022.06.20 |
클래스) CRUD를 포함한 학생부 예제 (0) | 2022.06.20 |