개발자노트
클래스 ) 상속
hansummer
2022. 6. 20. 20:51
[상속] = 이전에 개발 했던걸 다음 단계에서도 그대로 써야 하거나 논리적으로 상하관계(부모자식관계) 가 있을 때 사용
상속관계에서는 자식공간에서 부모공간을 다 가져온 다음에 만들어지기 때문에
부모공간에서 먼저 생성자를 만들어줘야한다.
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 안나옴)
}
}