super什么时候使用

来源:互联网 发布:mac系统备忘录怎么复原 编辑:程序博客网 时间:2024/06/06 02:02

super什么时候使用

不是必须,但是自动调用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);//必须调用,否则他会默认调用父类的无参构造函数,而父类的无参构造函数已经被有参的覆盖,所以找不到 }}

子类重写了父类的方法,又想用父类该方法的时候
如:

class Parents{    Public Parents(){}    public void write(){        System.out.println("Parents");   }}class Children extends Parents{    Public Children(){}    public void write(){        System.out.println("Children");        super.write();   }}

不是必须的,在构造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数的构造函数,或这个函数被私有化了(用private修饰).此时你必须加入对父类的实例化构造.而this就没有这个要求,因为它本身就进行实例化的构造.

原创粉丝点击