4个回答
展开全部
不是必须
但是自动调用SUPER
什么时候必须调用SUPER
给你个例子
public class Father {
public String name;
public Father(String name) {
this.name = name;
}
}
public class Son extends Father{
public Son(String name) {
super(name);//必须调用,否则他会默认调用父类的无参构造函数,而父类的无参构造函数已经被有参的覆盖,所以找不到
}
}
但是自动调用SUPER
什么时候必须调用SUPER
给你个例子
public class Father {
public String name;
public Father(String name) {
this.name = name;
}
}
public class Son extends Father{
public Son(String name) {
super(name);//必须调用,否则他会默认调用父类的无参构造函数,而父类的无参构造函数已经被有参的覆盖,所以找不到
}
}
展开全部
不是必须的,在构造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数的构造函数,或这个函数被私有化了(用private修饰).此时你必须加入对父类的实例化构造.而this就没有这个要求,因为它本身就进行实例化的构造.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是,必须的
如果子类的构造函数里面调用方法,或在初始化一些变量,需要先用super()
如果子类的构造函数里面调用方法,或在初始化一些变量,需要先用super()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
子类重写了父类的方法,又想用父类该方法的时候
如:
class Parents{
Public Parents(){}
public void write(){
System.out.println("Parents");
}
}
class Children extend Parents{
Public Children(){}
public void write(){
System.out.println("Children");
super.write();
}
}
如:
class Parents{
Public Parents(){}
public void write(){
System.out.println("Parents");
}
}
class Children extend Parents{
Public Children(){}
public void write(){
System.out.println("Children");
super.write();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询