zoukankan      html  css  js  c++  java
  • Java基础——类的多态

    多态

    学习完封装和继承后,Java三大特性之一还有最后一个多态
    那么多态是什么?

    概念

    多态字面含义就是多种表现形式
    对应Java:同一操作作用于不同的类的对象,将产生不同的执行结果。

    实现

    向上转型

    基类引用指向派生类对象

    //Cat为基类
    //Ragdoll为派生类
    class Demo{
          public static void main(String args[]){
                //向上转型
                Cat cat = new Ragdoll();
          }
    }
    

    向上转型既可以使用派生类强大的功能,又可以抽取基类的共性。
    不能调用派生类中定义,而基类中没有的方法、属性。

    为什么能向上转型

    自动实现,编译器自动将派生类实例转为通用性基类。

    执行基类|派生类的方法

    执行派生类的方法。

    多态的实现,一个基类可以有多个派生类。
    每个派生类重写基类的方法,(相同方法的实现不同)
    基类引用调用派生类方法,体现了多态

    绑定

    动态绑定(后期绑定、运行时绑定):运行期间,根据对象的实际类型调用方法。

    Java多态通过动态绑定实现。

    多态前提:

    • 继承
    • 重写
    • 基类引用指向派生类对象

    一个基类引用,指向不同的派生类对象,执行该方法时,表现出不同的行为。

    执行方法

    前提

    1. 基类引用调用派生类对象
    方法 基类的方法 派生类的方法 不执行
    基类中定义,派生类中重写的方法
    基类中定义,派生类中没有重写的方法
    基类中没有,派生类中定义的方法

    应用意义

    1. 增强代码的可维护性
      • 封装通过合并特征和行为创建新的数据类型,将细节私有化,把接口和实现分离
      • 多态通过分离 做什么、怎么做,消除类型的耦合关系,将接口和实现分离
    2. 增强代码的可扩展性

    博客相关java项目:查看Github项目
    对应github项目:Demo5
    导入项目的方法: Java基础——Java如何导入本地项目

  • 相关阅读:
    列出对像属性,for(var i in obj)
    检测碰撞实例
    Rectangle 、getBounds(this)
    判断mc是否播放完成的简单方法
    操作规范时间工具类
    文本框中文字用htmlText操作并且实现文本框中文字加链接【link的用法】
    让舞台上的btn灰掉
    简单的缓动
    加入文本框
    HDU 1297 Children’s Queue (DP)
  • 原文地址:https://www.cnblogs.com/occlive/p/13378042.html
Copyright © 2011-2022 走看看