본문 바로가기
JAVA

30. 상속의상속

by NamGH 2023. 8. 7.

상속의 상속이란 먼저 부모 클래스에서 자식클래스로 상속해준 후 toString으로 return값을 받을때 super을 이용해 

toString 값을 가져오기때문에 상속의 상속이라고 칭한다


class Food{
private String name;
private String flavor;
 
Food(String name, String flavor){
this.name = name;
this.flavor = flavor;
}
 
public String toString() {
return name + "/" + flavor;
}
}
class Desert extends Food{
private String state; // 액체. 고체
private int price;
 
Desert(String name, String flavor, String state, int price){
super(name, flavor);
this.state = state;
this.price = price;
}
 
public String toString() {
return super.toString() + "/" + state + "/" + price;
}
}
class Macaron extends Desert{
private boolean ddung;
 
Macaron(String name, String flavor, String state, int price, boolean ddung){
super(name, flavor, state, price);
this.ddung = ddung;
}
 
public String toString() {
return super.toString() + "/" + ddung;
}
}
public class Ex05상속_상속 {
public static void main(String[] args) {
Food f = new Food("치킨", "바삭");
Desert d = new Desert("커피", "쓰다", "액체", 4000);
Macaron m = new Macaron("초코", "달다", "고체", 3000, false);
 
System.out.println(f);
System.out.println(d);
System.out.println(m);
}
}

다음 문제에서 일반 상속과 다른점은 toString 부분에서 부모의 클래스는 return값을 name + "/" + flavor; 처럼 평소처럼 사용하였지만 자식 클래스에서 toStirng을 보면 return super.toString() + "/" + state + "/" + price; 이런식으로 사용했는데  super.toString()이부분은 super을 이용하여 부모의 toString값을 가져온다는 뜻이다 그래서 결과를 본다면 toString값 다음에 Desert클래스에서 변수 선언된 값들이 이후에 뜨게 된다

 

'JAVA' 카테고리의 다른 글

32. 인터페이스  (0) 2023.08.07
31. 다형성  (0) 2023.08.07
29. 상속  (0) 2023.08.07
28. 객체배열  (0) 2023.08.03
27. 생성자  (0) 2023.08.03