Java笔记(01)---父类和子类的构造方法

199 阅读1分钟

Java中子类和父类构造方法的调用

  • 建议在父类中手写无参的构造方法

对于一个子类调用父类的案例,在子类实例化对象的过程中,总会事先调用一下父类的无参构造方法。即子类中默认的super()。

public class fu(){
    public fu(){
        sout("调用父类的无参构造方法")
    }
    public zi(age){
        sout("调用父类的有参构造方法")
    }
}


public class zi() extends fu{
    public zi(){
        sout("调用子类的无参构造方法")
    }
    public zi(int age){
        sout("调用子类的有参构造方法")
    }
}

此时,若实例化一个无参子类,会输出:

调用父类的无参构造方法
调用子类的无参构造方法

若实例化一个有参子类,会输出:

调用父类的无参构造方法
调用子类的有参构造方法

进一步尝试在父类中不写无参构造方法,会出现错误(子类的所有构造方法均出现错误,显示没有对应父类的构造方法。) 可以从两个方面解决。

一、父类中永远自己写一个无参构造

二、在子类中利用super关键字调用有参的构造。

根本原因是在子类中,默认有一行super()去调用父类的无参构造。