理解方法在超级调用()调用
问题描述:
如果我有一个类理解方法在超级调用()调用
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中调用,然后调用Foo()的构造函数并将名称正确设置为s?这是一个普通的super()调用吗?调用正在扩展的类的构造函数?
答
是的,这正是它的作用。它调用super/base类的构造函数。
答
super
总是指您的父类。代码执行的顺序将是如下:
new FooBar("Jim");
- >super(s);
- >Foo(String s)
将设置name=s
你不有一个默认的构造函数,所以没有super()
(不带参数的IE),因为你无法创建FooBar
的实例而没有String
参数