快速理解多态的含义

 

多态的实现必须有三个条件

1:必须要有继承

2:必须要有重写

3:父类引用指向子类对象

上面三个条件缺一不可


举例:


假设现在有一个父类Animal,这里为了方便,使用抽象类,Animal有唱歌、散步这两个方法,应该所有的动物都有这两个动作吧!

public abstract class Animal(){

     public  abstract   void sing();

     public abstract  void run();

}

如果这时候有Dog类和Cat类继承了此类,

Dog.java

public class Dog extends Animal(){

    public void sing(){

          System.out.println("狗叫");

    }

     public  void run(){

          System.out.println("狗散步");

   }



}

Cat.java

public class Cat extends Animal(){

    public void sing(){

          System.out.println("猫叫");

    }

     public void run(){

          System.out.println("猫散步");

   }



}


Test.java

......省略导包

public class Test(){

    public static void main(String [] args){

       Animal animal=new Dog();

       animal.sing();

       animal.run();

    }

]

此时运行的话,控制台会打印:

狗叫

狗散步



如果此时我们想换成猫,那么只需要改半行代码就可以了

public class Test(){

    public static void main(String [] args){

       Animal animal=new Catl();

       animal.sing();

       animal.run();

    }

]

此时运行的话,控制台会打印:

猫叫

猫散步

........
以后想换其他的动物,只要改一下就可以了,方法啥的都不用变,这样就简单多了



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值