我正在准备面试,而且有一个问题确实让我感到困惑。 人们说在java构造函数中不能继承,而是像这样的代码
public class childclass extends parentclass{
public childclass(){
super();
System.out.println("child");
}
public static void main(String[] args) {
childclass cc = new childclass();
}}
不是super()意味着子类继承了父类的构造函数吗?
答案 0 :(得分:0)
如果构造函数没有显式调用超类构造函数,Java编译器会自动插入对超类的无参数构造函数的调用。如果超类没有无参数构造函数,则会出现编译时错误。对象确实有这样的构造函数,因此如果Object是唯一的超类,则没有问题。
答案 1 :(得分:0)
构造函数不是成员,因此子类不会继承它们,但可以从子类调用超类的构造函数。
答案 2 :(得分:0)
嗯,这可能有点令人困惑。但是,您不是继承父构造函数,而是使用它。
专门的类继承父类的所有成员,但不继承构造函数,尽管专门的类必须通过publishing {
publications {
mavenJava(MavenPublication) {
from components.java
groupId project.group
artifactId jar.baseName
version project.version
}
}
}
使用它。
答案 3 :(得分:0)
我想,https://stackoverflow.com/a/18147860/5964970已回答了这个问题。继承意味着子类中的方法(和构造函数)的名称与父类中的名称相同。但是子类中的构造函数名称等于子类的类名,并且不等于父类的构造函数名称。