abstract class Animal
{
public abstract void eat();
}
class Cat extends Animal
{
public void eat(){
System.out.println(“猫吃鱼”);
}
public void catchMouse(){
System.out.println("猫抓耗子");
}
}
class Dog extends Animal
{
public void eat(){
System.out.println(“狗吃骨头”);
}
public void kanHome(){
System.out.println(“看家”);
}
}
//在多态中调用子类特有的功能
class Demo14
{
public static void main(String[] args)
{
Animal mao =new Cat();//向上转型
//mao.eat();
//把Animal类型转成Cat类型 高---低
Cat xiaomao = (Cat)mao; //向下转型
//xiaomao.catchMouse();
Dog dog = new Dog();
chi(dog);
}
public static void chi(Animal dw)//Animal dw=new Cat()
{
dw.eat();
if(dw instanceof Cat){
Cat mao = (Cat)dw;
mao.catchMouse();
}
if(dw instanceof Dog){
Dog dog = (Dog)dw;
dog.kanHome();
}
}
}