一、概述

多态是同一个行为具有多个不同表现形式或形态的能力。

多态就是同一个接口,使用不同的实例而执行不同操作。

多态性是对象多种表现形式的体现。

同一个事件发生在不同的对象上会产生不同的结果。

多态的前提条件

继承或者实现【二选一】

方法的重写【意义体现:不重写,无意义】

父类(接口)引用指向子类对象【格式体现)】

父类类型 变量名 = new 子类对象;
变量名.方法名();
Fu f = new Zi();
f.method();

二、多态中成员访问特点

  • 成员变量:编译看左边,执行看左边,看父类中是否有这个变量,如果有编译成功,否则编译失败
  • 成员方法:编译看左边,执行看右边,看父类中是否有这个方法,如果有编译成功,否则编译失败

三.多态的好处和弊端

  • 多态的好处:提高了程序的扩展性

    • 具体体现:定义方法的时候,使用父类类型作为参数,将来在使用的时候,使用具体的子类类型参与操作
    • 消除类型之间的耦合关系
    • 可替换性
    • 可扩充性
    • 接口性
    • 灵活性
    • 简化性
  • 多态的弊端:不能使用子类的特有功能

四.引用类型转换

  • 为什么要转型

    • 当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误。也就是说,不能调用子类拥有,而父类没有的方法。编译都错误,更别说运行了。
  • 向上转型
    • 当父类引用指向一个子类对象时,便是向上转型;
    • 多态本身是子类类型向父类类型向上转换的过程,这个过程是默认的。
    • 父类类型向子类类型向下转换的过程,这个过程是强制的
    • 一个已经向上转型的子类对象,将父类引用转为子类引用,可以使用强制类型转换的格式,便是向下转型。
  • 转型的异常
  • instanceof关键字

    • 给引用变量做类型的校验
    • 变量名 instanceof 数据类型
    • 如果变量属于该数据类型,返回true。
    • 如果变量不属于该数据类型,返回false。

面向对象之多态(学习java第十天)相关推荐

  1. 学习Java的十大理由,益处太多了

    Java应该是软件开发同学最熟悉的一种开发语言,古老但很流行,再加上现在大数据发展形势一片大好,更让Java的魅力十足.Java是任何人都会掌握的最基本的编程语言之一,因此简单.然而,使用Java开发 ...

  2. 学习Java的十步-天才思维模型

    导言 百货公司的香水,95%都是水,只有5%不同,那是各家秘方. 人也是这样,作为95%的东西其实是很像的,比较起来差别就是其中很关键性的5%,包括人的思维,格局以及人的快乐痛苦欲望.香精要熬个五年. ...

  3. 学习Java第十九天(一):1、Java中的网络编程

    1.Java中的网络编程 什么是网络? 在计算机领域中网络是信息传输,接收共享的虚拟平台,通过它把各个点,面,体的联系到一起,从而实现这些资源的共享. 作用:信息传输,资源共享 有点:资源共享免费 O ...

  4. 小白学习Java第二十九天

    今日内容 数据库的导入和导出 DQL 基本查询 条件查询 排序查询 函数 分组查询 分页查询 连接查询 一. 导入导出数据库 1.导出数据库 选中要导出的数据库,鼠标右键备份/导出-->备份数据 ...

  5. 碎片化学习Java(十六)Java for得出年份生肖

    本文参考 嗨客网 Java 实战 Java for循环案例 Java得出是猪年的年份案例 Java for循环 题目 答案 原文 若要查看详细 解题思路.解题步骤.运行结果 原文链接:Java for ...

  6. 学习Java第二十四天

    目录 一.网络编程 1.概述 2.三要素 二.IP地址 1.分类 2.方法 三.UDP 1.通信原理 2.发送数据 3.接收数据 四.TCP 1.原理 2.发送数据 2.接收数据 一.网络编程 1.概 ...

  7. 学习Java第二十五天--集合框架之集合嵌套案例

    Map集合和其它集合嵌套的案例.以及Map集合和Map集合嵌套的案例 案例1:Map和ArrayList的嵌套 案例2:Map和Map的嵌套 案例1:Map和ArrayList的嵌套 import j ...

  8. java inputstream 回退_系统学习 Java IO (十)----回退流 PushbackInputStream

    PushbackInputStream 旨在从 InputStream 解析数据时使用. 有时您需要先读取几个字节以查看将要发生的事情,然后才能确定如何解释当前字节, PushbackInputStr ...

  9. 小白学习Java第二十六天

    今日内容 BOM模型,重点定时器 jQuery简介 jQuery使用步骤 jQuery选择器 jQuery事件 jQuery中的循环 一.BOM (一)BOM简介 1.Bom(browser obje ...

最新文章

  1. JSP、EL和JSTL-学习笔记03【EL介绍和运算符、EL获取域中存储的数据】
  2. 相邻兄弟选择器(+)、子选择器()、兄弟选择器(~)等用法
  3. python里面的数学
  4. 从面试题看考察知识点(四)
  5. python编程心得体会-python核心编程____学习心得____part1
  6. AWS和阿里云对比研究二—阿里云
  7. linux IIC子系统分析(七)——实例分析通过i2c-dev操作I2C设备
  8. pb使用http方式上传下载文件
  9. linux查看日志相关命令
  10. python 怕网页_如何像玩游戏一样学Python?
  11. hive中order by、distribute by、sort by和cluster by的区别和联系
  12. 大数据组件笔记 -- ZooKeeper
  13. c#与python 交互(调用第三方库)
  14. CVPR 2016 摘要阅读
  15. XS-Leaks漏洞
  16. Java抽象类与抽象方法
  17. 百度搜索之site 使用
  18. [转载] 苹果 AppStore 应用商店生存之道
  19. ICPLAZA凭BFT+POS快速“出圈” 打造更繁荣的生态系统
  20. 《机电一体化系统设计》

热门文章

  1. 将windows的显示器作为linux的扩展屏
  2. 如何高效合理自如的回应面试时HR问出的一些人生规划,人生哲理,前途发展等问题(非技术性问题)
  3. Openwrt15.05网关后pptp外拨失败的解决办法
  4. Conda及常用生信软件安装
  5. Android 超高仿微信图片选择器 图片该这么载入
  6. AKH-0.66 MP-60×50 系列电流互感器(安科瑞-卓宋兰)
  7. 迭代与递归:To Iterate,Human; to Recurse, Divine.
  8. python理解浮点数运算的误差_Python 浮点数运算
  9. 今天是婆婆的生日,70岁的生日
  10. JavaScript控制台打印图片/超链接