Java基础知识—多态
来源:互联网 发布:映客直播网站源码 编辑:程序博客网 时间:2024/06/06 13:56
前言
多态,是继数据抽象和继承之后,面向对象第三种基本类型特征。
方法调用绑定
将方法调用同一个方法主体关联起来,称为绑定。 方法绑定分为两种:前期绑定和后期绑定(动态绑定)
Java方法绑定机制
Java中除了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是通过后期绑定。
多态表现
假设有一个基类Shape,包含成员方法draw()和erase()方法,现在有三个导出类Cycle、Square、Triangle均继承自Shape,并有各自的draw()与erase()方法
Shape s = new Cycle(); s.draw();
上述两行简单的代码运行的结果却是:系统将调用Cycle中的draw方法,这就是Java对方法进行后期绑定的体现。
向上转型
向上转型意味着导出类的接口范围会缩小,但却不会小于其基类的全部接口。构造器和多态
构造器调用顺序
基类构造器总是在导出类构造过程中被调用,而且按照继承层次逐渐向上链接,保证每个基类的构造器都能够得到调用。而构造器也有一项特殊任务:**检查对象是否被正确构造。** 由于导出类只能访问自己的成员而不能访问基类中的成员(基类成员通常都为私有类型),只有基类的构造器才具有恰当的权限对自己的元素进行初始化。因此必须令所有的构造器得到调用,否则就不能正确构造完整对象。
构造器调用顺序:
1 调用基类构造器。并不断递归下去,首先构造这种层次结构的跟,然后是下一层导出类,直到最低层的导出类。
2 按照声明顺序调用成员的初始化方法。
3 调用导出类构造器的主体。
向下转型与运行时类型识别(RTTI)
向下转型、
向上转型时,会丢失具体的类型信息,而且是安全的。但当我们需要获取类型信息时,就可以利用向下转型。但向下转型时不安全的。 向下转型,即将基类转换为导出类,由于导出类的接口比基类更为广泛,如果不对向下转型进行检查,将会发生错误(尤其是在调用向下转型获得的对象中的成员方法时)。在程序进入运行时期,仍然会对向下转型的对象进行检查,并根据实际情况决定是否返回一个ClassCastException(类转型异常)。
RTTI
- 这种在运行期间对类型进行检查的行为称作“运行时类型识别(RTTI)”
0 0
- Java基础知识—多态
- java基础知识--多态
- java—基础知识总结
- Java——Java基础知识
- java基础知识(一)--多态
- JAVA——基础知识加强
- Java基础知识——HashSet_TreeSet_Comparator
- java基础知识——继承
- JAVA基础知识——数组
- JAVA面试——基础知识
- java 基础知识——数据
- java基础知识——httpUrlConnection
- java 基础知识——01
- java 基础知识——02
- java 基础知识——03
- java 基础知识——04
- java 基础知识——05
- java 基础知识——06
- Android——ViewPager和底部导航的配合
- 序列化 和 反序列化
- 在iPython Notebook下运行 pycaffe
- java 并发学习(一)
- 一些小题目
- Java基础知识—多态
- 工作中常用的Linux命令
- python基本语法
- 细节看出基本功
- SourceTree配置diff工具Beyond Compare
- NavController模块之Nav Guards
- leetcode 109. Convert Sorted List to Binary Search Tree
- 受限的玻尔兹曼机(RBM)
- radio的回显与默认初始值