package 主要内容;
/**
多态:可以理解为事物存在的多种体现形态
人:男人,女人
动物:猫,狗
猫 x=new 猫();
动物 x=new 猫();
1、多态的体现
父类的引用指向了自己的子类对象
父类的引用也可以接受自己的子类对象
2、多态的前提
必须是类与类之间有关系,要么继承,要么实现
通常还有一个前提:存在覆盖
3、多态的好处
多态的出现大大的提高了程序的扩展性
4、多态的弊端
提高了扩展性,但是只能只要父类的引用访问父类中的成员
4、多态的应用
*/
abstract class Animal//父类————抽象动物 吃
{
abstract void eat();
}
class Cat extends Animal//子类————猫
{
void eat()//复写父类中的抽象功能
{
System.out.println("吃鱼");
}
public void catchMouse()//Cat特有的功能
{
System.out.println("抓老鼠");
}
}
class Dog extends Animal//子类————狗
{
void eat()//复写父类中的抽象功能
{
System.out.println("吃骨头");
}
public void kanJia()//dog特有的功能
{
System.out.println("看家");
}
}
public class 多态
{
public static void main(String[] args)
{
Animal a = new Cat();
Cat c = (Cat)a;
c.catchMouse();
function(new Dog());//直接调用
function(new Cat());
}
public static void function(Animal a)//等同于Animal a=new Cat();
{
a.eat();
}
} |
|