/*
多态的扩展性。
动物:猫,狗。
猫 x = new 猫();
动物 x = new 猫();
1.多态的体现
父类的引用指向了自己的子类对象。
父类的引用也可以接收自己的子类对象。
2.多态的前提
必须是类与类之间有关系。要么继承,要么实现。
通常还有一个前提:存在覆盖。
3.多态的好处
多态的出现大大的提高程序的扩展性。
4.多态的弊端
提高了扩展性,但是只能使用父类的引用访问父类中的成员。
*/
class DuoTaiTest
{
public static void main(String[] args)
{
Cat c= new Cat();
c.eat();
c.catchMouse();
function(new Cat());//用多态的扩展性,Animal a=new Cat();
Dog d=new Dog();
d.eat();
d.kanjia();
function(new Dog());//Animal a =new Dog();
}
public static void function(Animal a)//Animal a=new Cat();Animal a=new Dog();
{
a.eat();
}
/*
public static void function(Cat c)
{
c.eat();
}
public static void function(Dog d)
{
d.eat();
}
*/
}
abstract class Animal
{
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 kanjia()
{
System.out.println("看家");
}
}
|
|