4.5 子类的实例化过程

子类的实例化过程
注意:super语句一定定义于子类构造函数的第一行
结论:子类的所有构造函数,默认都会访问父类中空参数的构造函数
因为子类每一个构造函数内的第一行都有一句隐式super();
当父类中没有空参数构造函数时,子类必须手动通过super语句形式来指定要访问父类中的构造函数
当然:子类的构造函数第一行也可以手动指定this语句来访问本类中的构造函数
子类中至少会有一个构造函数会访问父类中的构造函数
this和super都只能写第一行

class Fu  //extends Object
{
    Fu()
    {
        System.out.println("Fu");
    }
    Fu(int x)
    {
    
        System.out.println("FU...."+x)
    }
}
class Zi extends Fu
{
    Zi()
    {
        //super();省略了super();
        System.out.println("zi run");
    }
    Zi(int x)
    {
        //this();
            //super();//省略了super();
        System.out.println("zi...."+x);
    }
}
class Person
{
    private String name;
    Person(String name)
    {
        this.name = name;
    }
    void show(){}
}
class Student extends Person
{
    Student(String name)
    {
        super(name);//父类定义完的内容子类想要用,构造函数用super()
    }
    void method()
    {
        super.show();//一般函数用super.
    }
}
class ExtendsDemo4
{
    public static void main(String[] args)
    {
        Zi z1= new Zi(4);//输出fu,zi...+4
        Zi z = new Zi();//输出fu,zi
    }   
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。