JAVA基础多态相关知识,希望对初学者有些帮助

来源:互联网 发布:linux can总线驱动 编辑:程序博客网 时间:2024/06/06 08:59

多态:事物存在的多种体现形态。

1,多态的体现
    父类的引用指向了自己的子类对象。
    父类的引用也可以接收自己的子类对象。

2,多态的前提
    必须是类与类之间有关系。要么继承,要么实现。
    通常还有一个前提:存在覆盖。

3,多态的好处
    多态的出现大大的提高程序的扩展性。

4,多态的弊端:
    提高了扩展性,但是只能使用父类的引用访问父类中的成员。

5,使用多态的应用及注意事项

         强制将父类的引用。转成子类类型。向下转型。
        Cat c = (Cat)a;
        c.catchMouse();
        千万不能将父类对象转成子类类型。
        我们能转换的是父类应用指向了自己的子类对象时,该应用可以被提升,也可以被强制转换。
        多态自始至终都是子类对象在做着变化。

代码例子

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


//-----------------------------------------


class DuoTaiDemo
{
    public static void main(String[] args)
    {
     
        Cat c1 = new Cat();
        function(c1);

        function(new Dog());
     

        //Animal c = new Cat();
        //c.eat();

        
        function(new Cat());
        function(new Dog());
       
    }
    public static void function(Animal a)
        a.eat();
        //a.catchMouse();
    }
 

}

本文是看了毕向东老师的视频做的一些总结,大家有兴趣的可以去网上找一下相关视频

0 0
原创粉丝点击