BurgerSet.java 자식클래스
Burger 부모클래스
각 문장 해석해야 하는데 잘 모르겠네요 ㅠㅠ 초보가 이해하기 좋게 자세히 설명 좀 부탁드리겠습니다!!
Burger.java
--------------------------------------------------------------
public class Burger {
private int price;
public int quantity;
public Burger(int price) {
this.price = price;
}
public Burger() {
this(3500);
}
protected int getPrice() {
return price;
}
}
--------------------------------------------------------------
BurgerSet.java
--------------------------------------------------------------
public class BurgerSet extends Burger {
public BurgerSet() {
super();
}
protected int getPrice() {
return (super.getPrice() + 1500) * getQuantity();
}
public int getQuantity() {
return super.quantity;
}
public void setQuantity(int quantity) {
super.quantity = quantity;
}
public static void main(String[] args) {
BurgerSet burgerSet = new BurgerSet();
burgerSet.setQuantity(2);
System.out.println("버거 " + burgerSet.getQuantity()+"셋트의 값은 " +
burgerSet.getPrice()+ "원입니다.");
}
}
--------------------------------------------------------------
변수가 public 인데 겟터 셋터가 있네 ㅋㅋ 햄버거 세트가 햄버거의 subclass 고 말야 ㅋㅋ 교수가 저거 객체지향이라고 문제 내줬어??
Burger는 제품명이니 class가 아니라 field 가 되는게 맞겠지... 그러니까 new Product ("burger", 4600);와 같은 식으로 쓰는거... 글고 BurgerSet은 맥락상 여러개의 버거를 묶은거니 이걸 상속으로 해결하는건 맞지 않은듯...List<Burger> burgers ; 로 접근하는게 더 맞지.
본인이 직접 짠거라면 앞으로 저런 식으로 안짜면 되는거지만.. 만약 저 코드가 학교에서 조교나 교수가 보여준거라면... 굉장히 심각한건데.. 위 예제는 제품 정의와 수량및 계산 이라는 별개의 주제들을 모두 섞어서, 그것도 엉터리 상속으로 보여주고 있음. 저런 예제를 보고 결국 아, 상속이란 이렇게 쓰는거구나.. 해서 애들이 이상한 짓을 아무렇지않게 하는 듯...
Burger 는 Burger 자신의 정보만 알아야 되는거야 버거의 객체는 버거 하나를 의미 하는 걸텐데 그럼 거기에 수량이 들어 가면 안되지 그리고 Burger의 subclass 는 Burger 를 좀더 구체화 시킨 녀석이니까 BurgerSet 이 Burger 의 subclass 가 되서도 안되고