问题是这样的:我有一个抽象类,该抽象类在其构造函数中完成了一些工作,还有一组实现抽象类的子类:
class AbstractClass {
AbstractClass(){ /* useful implementation */ }
}
class ConcreteClass1 extends AbstractClass {
ConcreteClass1(){ super(); /* useful implementation */ }
}
然后,需要定制具体的类,一种解决方案是扩展具体的类:
class CustomizedClass1 extends ConcreteClass1 {
CustomizedCLass1(){ super(); /* useful implementation */ }
}
但是问题在于自定义类仅需要调用抽象类的构造函数,而无需调用具体类的构造函数。
您如何实现的?更改类(class)关系的建议是有效的。
编辑:具体示例是ConcreteClass1和CustomizedClass1具有不同的数据集(ConcreteData1和CustomizedData1),并且它是从类的构造函数中的数据库中检索的。问题在于,创建CustomizedClass1的实例将检索两个数据实体。
我知道使用简单继承可能不是最好的选择,这就是为什么我指出更改类关系的建议是有效的。
最佳答案
简单(但是为什么?):
class AbstractClass {
AbstractClass(){ /* useful implementation */ }
}
class ConcreteClass1 extends AbstractClass {
ConcreteClass1(){ super(); /* useful implementation */ }
ConcreteClass1(boolean skip){ super(); }
}
class CustomizedClass1 extends ConcreteClass1 {
CustomizedCLass1(){ super(true); /* useful implementation */ }
}
关于java - 跳过父级构造函数以调用祖 parent 的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1878558/