zoukankan      html  css  js  c++  java
  • Java笔记6:多态

    一、多态的分类
    对象的多态性:动物 x = new 猫();
    函数的多态性:函数重载、重写

     

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

     

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

    四、多态的好处
    多态的出现大大的提高了程序的扩展性

    五、多态的弊端
    只能使用父类的引用访问父类的成员

    六、代码示例

     

    [java] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. abstract class Animal  
    2. {  
    3.     abstract void eat();  
    4. }  
    5.   
    6. class Cat extends Animal  
    7. {  
    8.     public void eat()  
    9.     {  
    10.         System.out.println("吃鱼");  
    11.     }  
    12.     public void catchMouse()  
    13.     {  
    14.         System.out.println("抓老鼠");  
    15.     }  
    16. }  
    17.   
    18. class Dog extends Animal  
    19. {  
    20.     public void eat()  
    21.     {  
    22.         System.out.println("吃骨头");  
    23.     }  
    24.     public void kanJia()  
    25.     {  
    26.         System.out.println("看家");  
    27.     }  
    28. }  
    29.   
    30. class DuoTaiDemo  
    31. {  
    32.     public static void main(String[] args)  
    33.     {  
    34.         function(new Cat());  
    35.         function(new Dog());  
    36.   
    37.         Animal a = new Cat();//向上转型  
    38.         a.eat();  
    39.   
    40.         Cat c = (Cat)a;//向下转型  
    41.         c.catchMouse();  
    42.     }  
    43.   
    44.     public static void function(Animal a)  
    45.     {  
    46.         a.eat();  
    47.         //用于子类型有限  
    48.         //或判断所属类型进而使用其特有方法  
    49.         if(a instanceof Cat)  
    50.         {  
    51.             Cat c = (Cat)a;  
    52.             c.catchMouse();  
    53.         }  
    54.         else if(a instanceof Dog)  
    55.         {  
    56.             Dog c = (Dog)a;  
    57.             c.kanJia();  
    58.         }  
    59.     }  
    60. }  

    运行结果:

  • 相关阅读:
    jvm的代码缓存耗尽导致性能下降
    几次印象深刻的网上事故
    是时候对十二年的工作回顾了!
    基于GitLab的前端Assets发布体系
    元数据简介
    JSON和JSONP
    Javascript模块规范
    Javascript编程风格
    Require JS
    JavaScript的AMD规范
  • 原文地址:https://www.cnblogs.com/grimm/p/6732401.html
Copyright © 2011-2022 走看看