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(); } }
时间: 2024-10-14 00:59:40