多态与抽象
2016-05-02 19:47
197 查看
多态与抽象
多态
概念:相同的行为不同的实现。多态的分类:
静态多态: 编译期既已知方法执行效果(方法的重载)。
动态多态: 编译期未知,运行期根据绑定对象的不同,有不同的效果(动态绑定技术和方法重写)。
转型技术:当操作符两端的数据类型不一致的时候,就会发生转型。
当大的数据往小的空间存放,必须进行强制转换。(向下转型)
当小的数据放入大的空间的时候,自动类型转换。(向上转型)
引用数据同样存在转型技术(两个类必须存在继承关系)。
1.向下转型—-强制类型转换(编译可能通过,但运行起来有风险,必须保证运行的最终效果是父类引用指向子类对象或者本类应用指向本类对象)
当父类引用指向子类对象时,只能调用到来自父类的属性和行为(受访问修饰符限制)。
当本类引用指向本类对象的时候,只能看到本类的所有属性和行为(受访问修饰符限制)。
2.向上转型—自动类型转换。
父类的引用可以指向子类的对象。
*instanceof关键字*。
多态的主要应用:
多态参数:equals()方法
异构集合:解决只能存放相同数据类型的问题。ObjectArray如果存放基本数据类型,指向的是一个基本类型的封装。
抽象
关键字:abstract。特点:
只有方法的声明,没有方法的实现;
当一个类只要有一个抽象方法,这个类就是抽象类。(类名前加关键字,抽象类不能产生对象)
子类继承抽象类以后必须实现父类所有的抽象方法,否则自己也是抽象类。
抽象类的构造器是为了帮助子类产生对象中的父类部分。
抽象类可以具备非抽象的方法。
抽象的好处:帮助实现多态。
相关文章推荐
- 判定表
- 青蛙总动员
- HDU-1041-Computer Transformation,大数递推,水过~~
- 通过MultipleOutputs写到多个文件
- POJ 2226 Muddy Fields
- NYOJ 20 吝啬的国度
- [C++]继承与面向对象设计
- CSAPP 学习笔记 Chapter two & three
- yii2.0 自带验证码项目总结
- “hackers and painters”读书笔记
- 如果你使用WebView+FloatingActionButton
- 大作业:电梯设计的概要设计文档
- springMVC <mvc:default-servlet-handler /> 导致controller无效
- 2016年4月28日(6985小时时),第一次签合同,里程碑
- STM32F429的定时器的使用方法
- Android适配问题
- The string "--" is not permitted within comments.问题解决
- iOS开发------使用Xcode编译器定位抛出异常的位置
- 序列化流的使用(二)
- BZOJ 2818(莫比乌斯反演)