关于构造函数

父类有参构造函数的作用

  • 子类不能继承父类的构造函数
  • 子类继承父类后,如果想要初始化,必须保证父类已经被构造,此时就需要super关键字,父类存在无参构造时子类不需要显示调用即可继承,此时已经构造了父类,子类可初始化
  • 父类的私有属性和方法不能被直接继承,此时就需要用有参构造来继承父类的private属性,代码如下:
/**建立一个公共动物父类*/
public class Animal {
    private String name;
    private int id;
    /*由于name和id都是私有的,所以子类不能直接继承,
    需要通过有参构造函数进行继承*/
    public Animal(String myname,int myid) {
        name = myname;
        id = myid;
    }
    public void eat() {
        System.out.println(name+"正在吃");
    }
    public void sleep() {
        System.out.println(name+"正在睡");
    }
    public void introduction() {
        System.out.println("大家好!我是"  +id+"号"+name +".");
    }

}
public class Penguin extends Animal {
    public Penguin(String myname,int myid) {
        super(myname,myid); // 声明继承父类中的两个属性
    }
}
public class PenguinQQ {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Penguin QQ = new Penguin("小冰",10086);
        //调用一个有参构造方法
        QQ.eat();
        QQ.sleep();
        QQ.introduction();
    }
}

--输出结果:

小冰正在吃
小冰正在睡
大家好!我是10086号小冰.

你可能感兴趣的:(关于构造函数)