java中多态的作用,多态的好处,以及为什么要用多态?

看了这个,我终于知道了为什么要用多态了

看了大量的资料和视频之后,我终于搞清了多态的作用了,废话不多说,直接上干货!

多态的好处:

          1.提高了代码的可维护性

          2.提高了代码的扩展性

多态的作用:

           可以当做形式参数,可以接受任意子类对象

多态的弊端:

            不能使用子类特有的属性和行为

案例演示:

   父类与子类:

class Animal{

          public void eat(){

                System.out.println("动物吃饭");

              }

}

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("狗吃骨头");

             }

}

主类:

//加入现在需要创建三个猫对象和三个狗对象并使用eat方法,如果我们按照正常的思路:

class Demo_Animal{

       public static void main(String[] args) {

        Cat c1=new Cat();

        Cat c2=new Cat();

        Cat c3=new Cat();

        Dog d1=new Dog();

        Dog d2=new Dog();

        Dog d3=new Dog();

        c1.eat();

        c2.eat();

        c3.eat();

        d1.eat();

        d2.eat();

        d3.eat();

          }

}

//显然这样写代码冗余,我们可以先优化一下创建对象和调用方法的过程,把创建对象和调用方法的过程提取成为一个方法

class Demo_Animal{

       public static void main(String[] args) {

          method(Cat c1);

          method(Cat c2);

          method(Cat c3);

          method(Dog d1);

          method(Dog d2);

          method(Dog d3);

              }

     public static void method(Cat c){

       c.eat();

              }

     public static void method(Dog d){

       d.eat();

              }

}

//这个时候,如果有十个,百个类,猫,狗,猪,牛,羊........我们每次都需要写一个对应的method,这样是不现实的,因

//此我们需要进一步优化,使用多态,把父类当做形参

class Demo_Animal{

       public static void main(String[] args) {

       method(Cat c1);  

       method(Cat c2);  

       method(Cat c3);  

       method(Dog d1);  

       method(Dog d2);  

       method(Dog d3);  

       }

       public static void method(Animal a){

        a.eat(); 

        }

从这个案例中我们可以明显的感受到多态的优点,我所使用的父类作为形参的方法也是在工作时最为常用的一种方式,以上是我花了大功夫总结的多态,希望对看到的你有所帮助! 

  • 35
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值