class Animal{
//在继承中申请对象时,同名的方法编译需要看父类中是否有此方法,但是运行时按照子类方法来运行,不会运行父类的方法。
//所以必须在父类中写此方法,要不会报错。
public void eat(){
System.out.println("动物需要吃东西");
}
}
class Dog extends Animal{
public void eat (){
System.out.println("狗吃骨头");
}
}
class Cat extends Animal{
public void eat(){
System.out.println("猫吃鱼");
}
}
//此处体现多态的思想,此处的Animal是父类,因此Cat、Dog对象都可以用。
class AnimalTool{
public static void tool(Animal a){
a.eat();
}
}
class AnimalTest{
public static void main (String [] args){
Animal a1=new Cat();
a1.eat();
Animal a2=new Dog();
a2.eat();
System.out.println("---------------------------");
Cat a3=new Cat();
a3.eat();
Dog a4=new Dog();
a4.eat();
System.out.println("---------------------------");
//由于tool在AnimalTool类中是静态方法所以可以采用此方式调用
AnimalTool.tool(a1);
AnimalTool.tool(a2);
System.out.println("---------------------------");
AnimalTool.tool(a3);
AnimalTool.tool(a4);
System.out.println("---------------------------");
Animal a5=new Animal();
AnimalTool.tool(a5);
}
}
java中多态实例
猜你喜欢
转载自blog.csdn.net/zfliu96/article/details/83031493
今日推荐
周排行