【发布时间】:2021-05-12 12:19:15
【问题描述】:
让我们考虑以下类:
public abstract class Parent{
protected Parent(Object object){
/* ... */
}
}
还有以下一个:
public final class Child1 extends Parent{
public Child1(Object object){
super(object);
}
}
是否有任何通用方法可以停止在扩展 Parent 类的类中执行调用 super(object) 的构造函数,因此始终调用 Parent 构造函数?
我想知道,因为我将有一堆类扩展父类,并且它们都将共享相同的构造函数,没有花哨的例外,所以我会节省时间(不是那么多,但我也是只是好奇)。
【问题讨论】:
-
如果
Parent类中只有一个构造函数,则该构造函数必须通过super调用。您要避免的问题是什么? -
另外,为什么你的父构造函数是
protected?它是一个抽象类,所以只能实例化子类,只要保持那个构造函数是一个普通的public构造函数? -
我试图避免在 Parent 的每个子类中写入
public Child(Object object){ super(object); }。 -
1.你将不得不忍受它。显然,即使是龙目岛也不会帮助你。 2. 另外,如果你的简单项目有复杂的类层次结构,可能你的设计搞砸了?
标签: java constructor extends