我試圖理解繼承稍微好一點,但我似乎無法讓它工作。我正在創建一個披薩的基礎對象。底部,深鍋或薄。我有2個班,比薩餅,PizzaBase。我將私人變量保存在Pizza中,並在構建我的pizzabase時試圖調用它們。這是我的2班。但它不工作。我得到的消息setCost(雙)是不明確的類型比薩Java繼承
Java繼承
回答
你的代碼在各方面都是錯誤的。
聽編譯器:如果它說你不能在Pizza
上調用setCost()
,因爲沒有這樣的方法,這意味着你沒有定義它。
你應該做更多的事情是這樣的:
public class Pizza {
private double cost; // double is NOT a good idea for money
public Pizza(double cost) {
if (cost < 0.0) throw new IllegalArgumentException("we won't pay you to take our pizza!");
this.cost = cost;
}
public double getCost() { return this.cost; }
}
public class ThinPizza extends Pizza {
private static final double DEFAULT_COST = 2.0;
public ThinPizza() { this(DEFAULT_COST); }
public ThinPizza(double cost) { super(cost); }
}
public class ThickPizza extends Pizza {
private static final double DEFAULT_COST = 5.0;
public ThickPizza() { this(DEFAULT_COST); }
public ThickPizza(double cost) { super(cost); }
}
您可以在薄與厚比薩打電話getCost()
,因爲它是-A Pizza
。
不錯。愛IAE,哈哈! – vikingsteve
謝謝 - 這是一張有效的支票,你不同意嗎?爲什麼當價值對象很聰明的時候可以忽略它? – duffymo
True :) p.s,'return this.cost;' - why this.'? – vikingsteve
- 1. Java繼承與C#繼承
- 2. Java繼承
- 3. Java繼承
- 4. Java繼承類
- 5. Java繼承
- 6. Java繼承
- 7. Java繼承
- 8. 類繼承java
- 9. Java類繼承
- 10. Java super()繼承
- 11. 繼承在Java
- 12. java JAXB和繼承
- 13. 繼承問題(java)
- 14. Java中的繼承
- 15. Java繼承超級
- 16. Java繼承語法
- 17. Java繼承字段
- 18. Java泛型繼承
- 19. 動態繼承 - Java
- 20. 繼承Java子類
- 21. java繼承誤解
- 22. Java繼承問題
- 23. Java註釋「繼承」
- 24. 繼承在Java中
- 25. Java繼承...困惑
- 26. 繼承在Java中
- 27. Java超類繼承
- 28. @WebService繼承Java的
- 29. 掃雷Java繼承
- 30. 基本Java繼承
你的問題是什麼? –
對不起。它不工作。我得到的消息,setCost(雙)是未定義的類型比薩 –
嗯(setCost(雙)...)實際上是正確定義的。你確定你發佈的代碼與你屏幕上的代碼相同嗎?你對繼承的使用也有點奇怪。也許你可以使用'組合'而不是繼承'比薩和比薩餅? – vikingsteve