/*
猫狗案例多态版
测试结果:
猫吃鱼
猫玩捉迷藏
狗吃肉
狗看门
*/
//动物类
class Animal{
public Animal(){}
public void eat(){
System.out.println("吃饭");
}
}
//狗类 继承动物
class Dog extends Animal{
public Dog(){}
//重写方法
public void eat(){
System.out.println("狗吃肉");
}
//狗类特有的功能
public void lookDoor(){
System.out.println("狗看门");
}
}
//猫类 继承动物
class Cat extends Animal{ //我又一次忘了写extends...
public Cat(){}
//重写方法
public void eat(){
System.out.println("猫吃鱼");
}
//猫类特有的功能
public void playGame(){
System.out.println("猫玩捉迷藏");
}
}
//测试类
class CatDogDuoTaiTest{
public static void main(String[] args){
//定义成猫
Animal a= new Cat();
a.eat(); //执行的是重写的方法
//还原成猫
/*--------想要执行Cat特有的方法:------*/
Cat c= (Cat)a; //c引用了上面已有的猫对象(c指向了这个猫对象所在的堆内存空间 0x001)
c.playGame();//这时便可以用猫特有的功能了
//变成了狗
a= new Dog();//这里写的仍然是a,a又指向了一个狗对象
a.eat();
//还原成狗
Dog d= (Dog)a;
d.lookDoor();
}
}
练习:猫狗案例多态版
猜你喜欢
转载自blog.csdn.net/u013317445/article/details/81672192
今日推荐
周排行