本文主要是介绍继承关系中的构造方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
class Pet{
private String name;
private int health;
private int love; //为了演示,属性定为了不可继承的私有类型,但通过方法调用这些属性
public String getName(){
return name;
}
public int getHealth(){
return health;
}
public int getLove(){
return love;
}
//无参构造方法
public Pet(){
name = "宠物";
health = 100;
love = 20;
}
//有参构造方法
public Pet(String name){
this.name = name;
}
//父类的方法
public void print(){
System.out.println("我的名字叫"+name+",健康值是"+health+",亲密度为"+love);
}
}
class Dog extends Pet{
private String strain;
public Dog(String strain){
super(); //可以不写该句;
this.strain = strain;
/* 写不写super();语句都一样,如果没有通过super显示的调用父类的有参构造方法,也没有通过this显示的
调用自身的其他构造方法。系统会自动调用父类的无参构造方法。 */
}
//重写父类输出方法
public void print(){
System.out.println("Dog类\n我是一只"+getName()+",品种是"+strain+",健康值是"+getHealth()+",亲密度为"+getLove());
}
}
class Cat extends Pet{
private String sex;
//有参构造方法
public Cat(String sex){
super("宠物猫"); //调用父类相应的有参构造方法,与Dod中的super()不同;
this.sex = sex;
}
//重写父类输出方法
public void print(){
System.out.println("Cat类\n我是一只"+getName()+",性别是"+this.sex+",健康值是"+getHealth()+",亲密度为"+getLove());
}
}
class Pig extends Pet{
private String name = "笨猪";
private int IQ; //猪的智商
//无参构造方法;
public Pig(){
System.out.println("Pig类\n利用this.调用了自身的无参构造方法!");
}
//有参构造方法
public Pig(int IQ){
this(); //用this.调用自身的相应无参构造方法;
this.IQ = IQ;
}
//重写父类输出方法
public void print(){
System.out.println("我的名字叫:"+name+",智商是:"+IQ);
}
}
public class Dm{
public static void main(String[] args){
Dog d = new Dog("牧羊犬");
d.print();
Cat c = new Cat("雌");
c.print();
Pig p = new Pig(2);
p.print();
}
}
/*-----------------------------------
Dog类
我是一只宠物,品种是牧羊犬,健康值是100,亲密度为20
Cat类
我是一只宠物猫,性别是雌,健康值是0,亲密度为0
Pig类
利用this.调用了自身的无参构造方法!
我的名字叫:笨猪,智商是:2
-----------------------------------*/
这篇关于继承关系中的构造方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!