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();
}
}