博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
12 Java面向对象之多态
阅读量:6982 次
发布时间:2019-06-27

本文共 1197 字,大约阅读时间需要 3 分钟。

JavaSE 基础之十二

12 Java面向对象之多态

① 多态的概念及分类

  1. 多态的概念:对象的多种表现形式和能力
  2. 多态的分类
      1. 静态多态:在编译期间,程序就能决定调用哪个方法。方法的重载就表现出了静态多态。
      2. 动态多态:在程序运行期间,才能决定调用对象的哪个方法。在继承中,父类对象引用指向子类对象。
  3. 动态多态的特点
    1. 父类对象可以将引用指向子类对象,也可以指向本类对象。
    2. 多态其实指方法的多态:创建本类对象调用就是本类的方法。创建子类对象调用就是子类的方法。
    3. 如果子类没有重写父类的方法,默认就调用子类继承的方法(父类的方法)。
    4. 只能父类对象引用指向子类对象,不能反过来子类引用指向父类。
  4. 动态多态存在的条件
    1. 要有继承(两个类之间存在继承关系,子类要继承父类)。
    2. 要有重写(子类继承父类,子类一定要重写父类的方法)。
    3. 父类引用指向子类对象。
  5. 静态多态与动态多态的区别
    1. 相同:都是方法的多态,在代码执行过程中调用不同方法达到不同的效果。
    2. 不同:
      1. 静态多态重载来实现的,动态多态是用重写来实现的。
      2. 静态多态一个类的多个方法,相同行为的不同表现形式。
      3. 动态多态在运行的时候再决定执行的是某个子类里边的方法,将多态的方法分配到每个子类里边。

② 动态多态的应用

  1. 动态绑定机制
      在面向对象程序开发中,将一个方法调用与该方法所在的类关联起来,称为“绑定”。
      所谓的动态绑定,是指在运行时根据具体对象的类型进行绑定。
      当父类引用指向子类对象的时候,如果调用被子类重写的方法,那么表现得不是父类中的效果而是子类重写后的效果。
  2. 多态参数
      多态参数:就是当方法的某个形式参数是一个引用的时候,与该引用兼容的任何对象都可以传递给方法,从而允许方法接收不同数据类型的形式参数。
      例如:equals()方法
      如果方法中调用该对象的一个被重写的方法,那么不同类型的子类对象会表现出不同的体现。
  3. 异构集合
      创建一个不是同一类型但是有共同父类的数据集合。不同对象的集合称为异构集合。

③ instanceOf

  1. Java的多态性导致引用变量类型和实际引用的对象可以不一致。为了更准确区分出引用的是什么类型的对象,Java引入了instanceof运算符。
  2. 但是在Java中不推荐使用,推荐使用重载的方式。
  3. 只能用于对象。

④ 对象的转型

  1. 自动转型
      通过父类引用指向子类对象,其实子类自动转换成了父类的数据类型,在继承中子类重写了父类的方法,提供的方法比父类更加强大。
      向上转型存在一定的缺陷,将子类转换为父类对象,调用的时候只能调用父类的属性和行为,子类自己扩展的属性和行为无法使用。
  2. 强制转型 
      向下转型的好处:可以调用子类继承的属性和方法,还可以调用扩展的内容。

转载于:https://www.cnblogs.com/Gavin520/p/10554481.html

你可能感兴趣的文章
前五章的综合(查漏补缺续)一个字一个字读,便于您的理解程度
查看>>
面向对象的基本认知
查看>>
List创建,添加,读取,遍历,修改,移除等方法
查看>>
Maven构建springMVC+spring+MyBatis项目
查看>>
猴子选大王
查看>>
3249 搭积木
查看>>
POJ2749:Building roads——题解
查看>>
[SpringMVC]定义多个前缀映射的问题
查看>>
高中时的口头禅
查看>>
C++ 虚函数表解析
查看>>
[SCOI2009]windy数
查看>>
Struts2--Action属性接收参数
查看>>
2012年科技新闻背后的大数字
查看>>
报价单内,同一物料只允许一条行价格记录
查看>>
leetcode 283. Move Zeroes
查看>>
自己的php函数库
查看>>
HDU Problem 1599 find the mincost route 【Floyd求最小环】
查看>>
HDU2017多校联合 contest 1
查看>>
基于DevExpress实现对PDF、Word、Excel文档的预览及操作处理(转载自:http://www.cnblogs.com/wuhuacong/p/4175266.html)...
查看>>
range
查看>>