zoukankan      html  css  js  c++  java
  • 2018/01/07JAVA 基础 / 接口与继承:多态的概念、接口的意义是什么呢?

    概念

    类的多态 :父类引用指向子类对象.如下第15、16行。

    多态: 都是同一个类型,调用同一个方法,却能呈现不同的状态。举例如下代码中的第18、20行:

     1 package property;
     2  
     3 public class Item {
     4     String name;
     5     int price;
     6  
     7     public void buy(){
     8         System.out.println("购买");
     9     }
    10     public void effect() {
    11         System.out.println("物品使用后,可以有效果 ");
    12     }
    13     //其中LifePotion、MagicPosition类为Item类的子类 
    14     public static void main(String[] args) {
    15         Item i1= new LifePotion();//类的多态性,父类指向子类对象
    16         Item i2 = new MagicPotion();
    17         System.out.print("i1  是Item类型,执行effect打印:");
    18         i1.effect();
    19         System.out.print("i2也是Item类型,执行effect打印:");
    20         i2.effect();
    21     }
    22  
    23 }

    要实现类的多态,需要如下两个条件
    1. 父类(接口)引用指向子类对象
    2. 调用的方法有重写

    接口的意义/使用多态的好处

    如下代码

     1 package charactor;
     2  
     3 import property.Item;
     4 import property.LifePotion;
     5 import property.MagicPotion;
     6    
     7 public class Hero {
     8     public String name;
     9     protected float hp;
    10  
    11     public void useItem(Item i){
    12         i.effect();
    13     }
    14  
    15     public static void main(String[] args) {
    16          
    17         Hero garen =  new Hero();
    18         garen.name = "盖伦";
    19      
    20         LifePotion lp =new LifePotion();
    21         MagicPotion mp =new MagicPotion();
    22          
    23         garen.useItem(lp);
    24         garen.useItem(mp);     
    25          
    26     }
    27        
    28 }

    在第11~13行,只需要在Hero类中设计一个方法【方法的参数为父类或接口类的引用,该引用将指向子类引用所指向的对象】,通过父类引用/接口引用就可以调用不同子类重写的方法体甚至是在子类中增加的方法体。体现子方法的特殊性。

  • 相关阅读:
    row_number() over(partition by的用法
    java基础之--动态代理
    Java中主要有一下三种类加载器;
    HBase基本shell命令
    IntelliJ IDE 基础经验备案 四-查找快捷键
    Docker:5 扩展学习之安装mysql并且将数据挂载到本地磁盘
    Docker:4 扩展学习之修改docker容器配置
    nginx安装部署《简单版》
    Redis基础学习: 与外部交互的数据类型
    Redis基础学习: 内部数据结构
  • 原文地址:https://www.cnblogs.com/lijiehua/p/8229161.html
Copyright © 2011-2022 走看看