定义一个方法我是一个新的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中重写的实例方法。 –