定義一個方法我是一個新的Java開發人員,我會見了在Java中繼承的概念了一些困難來定義我的課......重用繼承在Java
在一邊,我有一個泛型類名爲車輛,它定義了幾十年的屬性(與他們的getter/setters)。我有一個Vehicle1類延伸車輛類。
在另一邊,我有一個通用的CLASSE名爲VehicleFactory定義一個單一的靜態方法是這樣的:
public class VehicleFactory {
protected static Vehicle makeResult() {
Vehicle result = new Vehicle();
result.setCode("1");
result.setNumber("2");
// other setters methods
return result;
}
的問題是,我想創建一個Vehicle1Factory類都有自己的makeResult方法,它使用其父類的makeResult方法。但我沒有做到這一點(這裏的目標是優化,因爲Vehicle1擁有Vehicle類的所有通用屬性,但有一些額外的屬性)。
我試着寫是這樣的:
public class Vehicle1Factory extends VehicleFactory {
protected static Vehicle1 makeResult() {
Vehicle1 result = new Vehicle1();
result = (Vehicle1) VehicleFactory.makeResult();
// I want to reuse the makeResult of its parent class to define
// its own makeResult method
}
}
但我這樣做的時候,Java的告訴我,有一個ClassCastException和我不能在這裏使用的投...
在這種情況下是否有解決方案?
什麼是Vehicle1?用這樣的名字,這個類不應該存在。解決方案可能是使用組合而不是繼承,但是你的例子太不清楚了。 Vehicle1Factory沒有理由擴大VehicleFactory,BTW。甚至沒有一個可以在VehicleFactory中重寫的實例方法。 –