我有三个类是这样的:在这种情况下是否需要执行标准构造函数(Java)?
public abstract class ClassA extends ClassX {
protected ClassA() {
super();
}
// more code
}
public class ClassB extends ClassA {
public ClassB() {
super();
}
// more code
}
public abstract class ClassC extends ClassB {
public ClassC() {
super();
}
// more code
}
我要说的是,对于ClassC
标准构造函数是没有必要的,因为Java将在编译过程中插入,因为在这个类别中没有其他构造函数,对不对? 如果属实,我可以简化ClassC
代码到这一点:
public abstract class ClassC extends ClassB {
// more code
}
现在我想说的是,因为构造函数的可访问性,从protected
增加到public
我不能ClassB
这样做。
我问,因为我不是100%肯定这件事,以为我可能失去了一些东西。特别是关于标准构造函数,如果我没有自己实现,将插入ClassC
。在这种情况下,它将具有可访问性public
,因为它从ClassB
继承。那是对的吗?
所以我的问题是:我可以删除ClassC构造,而无需代码被改变(尤其是构造函数的可访问性),并且是正确的,我不能删除ClassB的的构造函数。
你可能应该问个别的问题:) –
长话短说。你的假设看起来正确 – cjds
你是对的:-)。所以我的问题主要是:我可以删除ClassC中的构造函数,而不必更改代码(将编辑问题)。 –