0
点赞
收藏
分享

微信扫一扫

子类创建对象时一定先调用了父类构造器

杏花疏影1 2022-01-25 阅读 81

父类空间优先于子类对象产生

在每次创建子类对象时,先初始化父类空间,再创建其子类对象本身。目的在于子类对象中包含了其对应的父类空间,便可以包含其父类的成员,如果父类成员非private修饰,则子类可以随意使用父类成员。代码体现在子类的构造方法调用时,一定先调用父类的构造方法。

  1. 构造方法的名字是与类名一致的。所以子类是无法继承父类构造方法的。
  2. 构造方法的作用是初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构造方法中默认有一个super() ,表示调用父类的构造方法,父类成员变量初始化后,才可以给子类使用。

通过前面我们知道子类可以继承父类的属性和方法,除了那些private的外还有一样是子类继承不了的—构造器。对于构造器而言,它只能够被调用,而不能被继承。 调用父类的构造方法我们使用super()即可。

Father.java

public class Father {
    private String fName;
    private int fAge;
    public String fSex;
    Father() {
        System.out.println("Father constructor");
    }
    public void Work(){
        System.out.println("father work");
    }
}

Son.java

public class Son extends Father {
    @Override
    public void Work() {
        System.out.println("son work");
    }

    Son() {
        System.out.println("son constructor");
    }

    public static void main(String[] args) {
        Son son = new Son();
        son.Work();
    }
}

在这里插入图片描述

举报

相关推荐

0 条评论