java 面向对像 多态

多态
定义:某一类事物的多种存在形态。
例:动物中猫,狗。
猫这个对象对应的类型是猫类型猫x=new猫();
同时猫也是动物中的一种,也可以把猫称为动物。
动物y=new猫();
动物是猫和狗具体事物中抽取出来的父类型。
父类型引用指向了子类对象。

abstract class Animal
{
    abstract void eat();
}
        class Cat extends Animal
    {
            public void eat()
            {
                System.out.printin("吃鱼");
            }
            public void catch Mouse()
            {
                System.out.println("抓老鼠");
            }
        }
        class Dog extends Animal
        {
            public void eat()
            {
                system, out, printin("吃骨头");
            }
            public void kanJia()
            {
                system, out, printin("看家");
            }
        }

class Pig extends Animal
        {
            public void eat()
            {
                System.out.print In("词料]");
            }
            public void gongDi()
            {
                system.out.printin("逆"); 
            }
        }

class  DuoTaiDemo
        {
            public static void main(String[]args)
            {
                //Cat c=new Cat();
                //c. eat();
                //Dog d=new Dog();
                //d. eat();
                Cat c = new Cat();
                Catc1 = new Cat();
                function(c1);
                function(new Dog());
            }
            public static void function(Cat c)
            {
                c.eat();
            }
            public static void function(Dog d)
            {
                d.eat();
            }
        }

1,多态的体现
父类的引用指向了自己的子类对象。
父类的引用也可以接收自己的子类对象。
2,多态的前提
必须是类与类之间有关系。要么继承,要么实现。
通常还有一个前提:存在覆盖。
3,多态的好处
多态的出现大大的提高程序的扩展性。I
4,多态的弊端:
提高了扩展性,但是只能使用父类的引用访问父类中的成员。
5,多态的应用

6,多态的特点
成员函数:
编译时:要查看引用变量所属的类中是否有所调用的成员。
在运行时:要查看对象所属的类中是否有所调用的成员。
成员变量:
只看引用变量所属的类。

上一篇:PAT乙级真题 1081 检查密码 C++实现


下一篇:ASP.NET webapi 全局异常过滤器