首页 > 代码库 > 多态练习一

多态练习一

public class Animal {
String name;


public Animal() {
    super();
}


public Animal(String name) {
    super();
    this.name = name;
}


public void eat(){
    System.out.println("正在吃");
}
}
public class Cat extends Animal {
    public void eat(){
        System.out.println("我是小猫,我在吃鱼");
    }

    public void zhua(){
        System.out.println("抓老鼠把");
    }
    
    
}
public class Dog extends Animal {
public void eat(){
    System.out.println("我是小狗,我在吃骨头");
}
public void kan(){
    System.out.println("小狗要看家的");
}

}
public class Eagle extends Animal {

public void eat(){
    System.out.println("我是老鹰,我也不知道自己要吃点啥");
}


public void fly(){
    System.out.println("飞翔在天空");
}


}
/*【练习题】1.多态练习
   1.定义一个Animal父类,方法有eat();
    2.定义三个子类;
            Cat,Dog,Eagle;
            每个子类增加新的方法,并重写eat();
    3.利用多态性           wan
            定义一个Animal类型的变量a,并将不同子类的实例赋给a;
            调用eat();观察结果后,并理解多态
    4.思考,如果a的引用指向一个Cat,如何调用Cat的新增方法;*/
public class Test {
public static void main(String[] args) {
    Animal a=new Eagle();
    if(a instanceof Eagle){
        Eagle e=(Eagle)a;
        e.fly();
    }
    a.eat();
    
}
}

 

多态练习一