【发布时间】:2014-04-19 07:35:56
【问题描述】:
构造函数可以使用超类构造函数调用来调用直接超类的构造函数吗? (即super(namelist);)
【问题讨论】:
-
是的,这就是关键字的目的。
-
实际测试这不会比在 SO 上提问更快吗?
-
鼠标悬停在downvote按钮上显示:“这个问题没有显示任何研究工作”,恐怕在这里有点适用
标签: java
构造函数可以使用超类构造函数调用来调用直接超类的构造函数吗? (即super(namelist);)
【问题讨论】:
标签: java
构造函数可以使用超类构造函数调用来调用直接超类的构造函数吗?
是的,它可以。但仅作为(子类)构造函数主体的第一条语句。
public class A {
public A(List<String> namelist) {
}
public A() {
}
}
public class B extends A {
public B(List<String> namelist) {
super(namelist);
}
public B() {
// implicitly calls 'super()'
List<String> namelist = ...;
super(namelist); // Syntax error.
}
}
【讨论】:
是的,你可以从子类调用构造函数。即
class A
{
public A()
{
System.out.println("Class A");
}
public A(String str)
{
System.out.println("Class A"+str);
}
}
class B extends A
{
public B()
{
super("Hello World");
}
}
【讨论】: