父类有参构造函数的作用
- 子类不能继承父类的构造函数
- 子类继承父类后,如果想要初始化,必须保证父类已经被构造,此时就需要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号小冰.