JAVA——多态
来源:互联网 发布:手机淘宝排行榜 编辑:程序博客网 时间:2024/06/02 07:17
1、多态性
(1)多态:同一个对象在不同时刻体现出来的不同状态。
(2)多态的前提:
A:有继承或者实现关系。
B:有方法重写。
C:有父类或者父接口引用指向子类对象。
(3)多态的分类:
a:具体类多态
class Fu {}
class Zi extends Fu {}
Fu f = new Zi();
b:抽象类多态
abstract class Fu {}
class Zi extends Fu {}
Fu f = new Zi();
c:接口多态
interface Fu {}
class Zi implements Fu {}
(4)多态中的成员访问特点(子类与父类拥有相同的东西时)
A:成员变量
编译看左边(父类),运行看左边(父类)
B:构造方法
子类的构造都会默认访问父类构造
C:成员方法
编译看左边(父类),运行看右边(子类)【原因:方法有重写,子类把父类方法重写掉了,如果没有重写依旧看父类】
D:静态方法
编译看左边(父类),运行看左边(父类)
(5)多态的好处:
A:提高代码的维护性(继承体现)
B:提高代码的扩展性(多态体现)
(6)多态的弊端:父不能使用子的特有功能。
现象:子可以当作父使用,父不能当作子使用。
(7)多态中的转型
A:向上转型:从子到父(多态)
B:向下转型:从父到子
用处:当想要使用子类的特有功能时
方法:a. 创建子类对象调用方法即可
Son son = new Son() ;
缺点:不合理,并且占用内存。
b.父类的引用强制转换为子类的引用(向下转型)
Son son = (Son) father ; //son与father两个对象同时指向一块内存,节省空间
(8)多态在内存中的图解
(9)多态中对象变化内存图解
图中的ClassCastException错误提醒表示类型转换异常,一般出现在多态的向下转型中
- Java——java多态
- Java——多态
- java——多态
- Java——多态
- java——多态
- Java——多态
- JAVA——多态
- Java——多态
- JAVA——多态
- java——多态
- 多态——Java
- Java基础知识—多态
- java读书笔记——多态
- JAVA多态——另解
- java基础——多态
- JavaSE——Java多态
- Java SE——多态
- JAVA学习——多态
- 归并排序
- Hbase与Maven工程的Spring配置笔记
- 2017跟着小虎玩着去软考--项目管理师上午考试试题之六(解析2016下半年项目管理师上午试题20-23题)
- 第一章 数据库系统引论
- 从Slice_Header学习H.264(二)--片头的子语法项目
- JAVA——多态
- 【Python学习】pyinstaller使用
- 对Java的内存分配的简单了解(1)
- 一种批量删除数据的方法
- 网易17春招笔试题
- 计算几何学习笔记
- QTreeView冻结列(QTreeView第一列不随滑块移动)
- LeetCode Invert Binary Tree
- 使用md5在SQL中加密