//多态
public class MyCat6 extends MyPetTest3 {
public MyCat6(String name, int age, String color, double weight) {
super(name, age, color, weight);
}
public void speak(){//方法重写
System.out.println(this.getName()+":喵喵喵");
}
public void catchMouse(){//猫独有的方法
System.out.println("不管黑猫白猫抓到老鼠就是好猫");
}
//多态:方法的重载或复写,另一种多态是对象的多态
/*当把子类对象当做父类对象后,就只能调用父类中的属性和方法,子类自己扩展的属性和方法就无法调用了,
* 如果子类重写了父类的方法,则调用该方法时是调用子类中重写的方法*/
public static void main(String[] args) {
MyPetTest3 cat=new MyCat6("阿猫",3,"白色",2.1);//创建父类对象
cat.eat("鱼");//调用父类中的eat方法
cat.speak();//调用重写后的方法
//cat.catchMouse();子类对象当父类对象看,不能调用自己扩展的方法
//((MyCat6)cat).catchMouse();//强制转换为子类对象后可调用自己扩展的方法
if(cat instanceof MyCat6)
((MyCat6)cat).catchMouse();
else
System.out.println("cat不是一只猫!");
}
}
面向对象-宠物猫实例
最新推荐文章于 2022-09-12 14:20:11 发布