面向对象之多态(学习java第十天)
一、概述
多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口,使用不同的实例而执行不同操作。
多态性是对象多种表现形式的体现。
同一个事件发生在不同的对象上会产生不同的结果。
多态的前提条件
继承或者实现【二选一】
方法的重写【意义体现:不重写,无意义】
父类(接口)引用指向子类对象【格式体现)】
父类类型 变量名 = new 子类对象;
变量名.方法名();
Fu f = new Zi();
f.method();
二、多态中成员访问特点
- 成员变量:编译看左边,执行看左边,看父类中是否有这个变量,如果有编译成功,否则编译失败
- 成员方法:编译看左边,执行看右边,看父类中是否有这个方法,如果有编译成功,否则编译失败
三.多态的好处和弊端
- 多态的好处:提高了程序的扩展性
- 具体体现:定义方法的时候,使用父类类型作为参数,将来在使用的时候,使用具体的子类类型参与操作
- 消除类型之间的耦合关系
- 可替换性
- 可扩充性
- 接口性
- 灵活性
- 简化性
- 多态的弊端:不能使用子类的特有功能
四.引用类型转换
- 为什么要转型
- 当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误。也就是说,不能调用子类拥有,而父类没有的方法。编译都错误,更别说运行了。
- 向上转型
- 当父类引用指向一个子类对象时,便是向上转型;
- 多态本身是子类类型向父类类型向上转换的过程,这个过程是默认的。
- 父类类型向子类类型向下转换的过程,这个过程是强制的
- 一个已经向上转型的子类对象,将父类引用转为子类引用,可以使用强制类型转换的格式,便是向下转型。
- 转型的异常
- instanceof关键字
- 给引用变量做类型的校验
- 变量名 instanceof 数据类型
- 如果变量属于该数据类型,返回true。
- 如果变量不属于该数据类型,返回false。
面向对象之多态(学习java第十天)相关推荐
- 学习Java的十大理由,益处太多了
Java应该是软件开发同学最熟悉的一种开发语言,古老但很流行,再加上现在大数据发展形势一片大好,更让Java的魅力十足.Java是任何人都会掌握的最基本的编程语言之一,因此简单.然而,使用Java开发 ...
- 学习Java的十步-天才思维模型
导言 百货公司的香水,95%都是水,只有5%不同,那是各家秘方. 人也是这样,作为95%的东西其实是很像的,比较起来差别就是其中很关键性的5%,包括人的思维,格局以及人的快乐痛苦欲望.香精要熬个五年. ...
- 学习Java第十九天(一):1、Java中的网络编程
1.Java中的网络编程 什么是网络? 在计算机领域中网络是信息传输,接收共享的虚拟平台,通过它把各个点,面,体的联系到一起,从而实现这些资源的共享. 作用:信息传输,资源共享 有点:资源共享免费 O ...
- 小白学习Java第二十九天
今日内容 数据库的导入和导出 DQL 基本查询 条件查询 排序查询 函数 分组查询 分页查询 连接查询 一. 导入导出数据库 1.导出数据库 选中要导出的数据库,鼠标右键备份/导出-->备份数据 ...
- 碎片化学习Java(十六)Java for得出年份生肖
本文参考 嗨客网 Java 实战 Java for循环案例 Java得出是猪年的年份案例 Java for循环 题目 答案 原文 若要查看详细 解题思路.解题步骤.运行结果 原文链接:Java for ...
- 学习Java第二十四天
目录 一.网络编程 1.概述 2.三要素 二.IP地址 1.分类 2.方法 三.UDP 1.通信原理 2.发送数据 3.接收数据 四.TCP 1.原理 2.发送数据 2.接收数据 一.网络编程 1.概 ...
- 学习Java第二十五天--集合框架之集合嵌套案例
Map集合和其它集合嵌套的案例.以及Map集合和Map集合嵌套的案例 案例1:Map和ArrayList的嵌套 案例2:Map和Map的嵌套 案例1:Map和ArrayList的嵌套 import j ...
- java inputstream 回退_系统学习 Java IO (十)----回退流 PushbackInputStream
PushbackInputStream 旨在从 InputStream 解析数据时使用. 有时您需要先读取几个字节以查看将要发生的事情,然后才能确定如何解释当前字节, PushbackInputStr ...
- 小白学习Java第二十六天
今日内容 BOM模型,重点定时器 jQuery简介 jQuery使用步骤 jQuery选择器 jQuery事件 jQuery中的循环 一.BOM (一)BOM简介 1.Bom(browser obje ...
最新文章
- JSP、EL和JSTL-学习笔记03【EL介绍和运算符、EL获取域中存储的数据】
- 相邻兄弟选择器(+)、子选择器()、兄弟选择器(~)等用法
- python里面的数学
- 从面试题看考察知识点(四)
- python编程心得体会-python核心编程____学习心得____part1
- AWS和阿里云对比研究二—阿里云
- linux IIC子系统分析(七)——实例分析通过i2c-dev操作I2C设备
- pb使用http方式上传下载文件
- linux查看日志相关命令
- python 怕网页_如何像玩游戏一样学Python?
- hive中order by、distribute by、sort by和cluster by的区别和联系
- 大数据组件笔记 -- ZooKeeper
- c#与python 交互(调用第三方库)
- CVPR 2016 摘要阅读
- XS-Leaks漏洞
- Java抽象类与抽象方法
- 百度搜索之site 使用
- [转载] 苹果 AppStore 应用商店生存之道
- ICPLAZA凭BFT+POS快速“出圈” 打造更繁荣的生态系统
- 《机电一体化系统设计》
热门文章
- 将windows的显示器作为linux的扩展屏
- 如何高效合理自如的回应面试时HR问出的一些人生规划,人生哲理,前途发展等问题(非技术性问题)
- Openwrt15.05网关后pptp外拨失败的解决办法
- Conda及常用生信软件安装
- Android 超高仿微信图片选择器 图片该这么载入
- AKH-0.66 MP-60×50 系列电流互感器(安科瑞-卓宋兰)
- 迭代与递归:To Iterate,Human; to Recurse, Divine.
- python理解浮点数运算的误差_Python 浮点数运算
- 今天是婆婆的生日,70岁的生日
- JavaScript控制台打印图片/超链接