如果我有课
class Foo{
String name;
public Foo(String s){
name=s;
}
public void setName(String s){
name=s;
}
public String getName(){
return name;
}
}
然后
class FooBar extends Foo {
public FooBar(String S){
super(s);
}
}
我的主要方法是
public static void main(String[] args){
FooBar item1 = new FooBar("Jim");
}
在类FooBar中调用super()然后调用Foo()的构造函数并正确地将名称设置为s吗?这是普通的super()调用吗?调用正在扩展的类的构造函数?
答案 0 :(得分:2)
是的,这正是它的作用。它调用super / base类的构造函数。
答案 1 :(得分:1)
super
始终引用您的父类。代码执行顺序如下:
new FooBar("Jim");
- > super(s);
- > Foo(String s)
将设置name=s
您不有默认构造函数,因此没有super()
(即没有参数),因为如果没有FooBar
您无法创建String
的实例参数