java编程思想学习-第8章多态
来源:互联网 发布:数据库长整型 编辑:程序博客网 时间:2024/05/20 20:57
1.java方法分为前期绑定和后期绑定,static方法和final方法(private方法类似于final)为前期绑定,其余都是后期绑定。
2.java多态和C++多态不一样,C++中只有virtual方法是多态,java中除了static和final方法,其他的方法都类似于virtual方法。思考final方法或者private方法的用法。
3.java成员变量不具体多态性。
4.java不要再构造函数中调用动态绑定函数。如果要在初始化成员变量,可以用初始化块。默认初始化顺序:
父类static成员 -> 子类static成员 -> 父类普通成员初始化和初始化块 -> 父类构造方法 -> 子类普通成员初始化和初始化块 -> 子类构造方法
5.Java与C++的区别之构造函数中的多态
我们有个一个类A,在构造函数中调用自己的方法f。
现在有一个类B,继承A,并覆盖了方法f。
那么构造函数B调用时先执行A的构造函数,此时在A的构造函数中的f是指A::f, 还是B::f呢?
在C++中,对于函数调用的多态主要是通过虚表实现,在构造函数完成前,虚表未实现,所以此时不会有多态特性,故调用的仍然是A::f。
但是在Java中表现则不是的,会调用到子类的方法,即B::f。
在这一点上,C++的表现应该更加合理。
故在Java中,若在构造时保证调用到的不会是派生类的方法,一定要调用private, 或final方法。因为final方法不会被覆盖,private也是,private默认其实就是final的,覆盖private方法其实是生成了一个新方法。
6.java覆盖函数允许协变返回类型。
学习的文章:
https://www.cnblogs.com/punkisnotdead/p/4936432.html
- java编程思想学习-第8章多态
- [学习笔记][Java编程思想]第8章:多态
- Java编程思想 第8章 多态
- 《Java编程思想》--多态--第8章
- Java编程思想学习
- 学习java编程思想
- java编程思想学习
- 《JAVA编程思想》学习备忘(第277页Polymorphism-1)
- 《JAVA编程思想》学习备忘(第277页Polymorphism-2)
- 《JAVA编程思想》学习备忘(第277页Polymorphism-3)
- 《JAVA编程思想》学习备忘(第311页Interfaces-1)
- JAVA 编程思想 第4版 学习笔记 - 第五章
- JAVA编程思想学习第一篇の对象导论
- JAVA编程思想学习总结:第9章接口
- 《Java编程思想》(第4版)学习总结
- java编程思想学习-第17章-容器深入研究
- java编程思想学习_第13章_字符串
- java编程思想学习_第20章_注解
- 更新jdk版本
- controller中使用@ResponseBody注解,返回数据时出现中文乱码
- Linux(Ubuntu) :ImportError: No module named google.protobuf.internal
- python之字典的嵌套,递归调用
- Oracle触发器与存储过程的学习小练习
- java编程思想学习-第8章多态
- visual studio 2010代码编辑器配色设置
- 手撕红黑树
- Spring MVC中获取request ,response
- 鸭子类型(duck typing)
- Atitit r7 doc list on home ntpc.docx 驱动器 D 中的卷是 p2soft 卷的序列号是 9AD0-D3C8 D:\ati\r2017 v3 r01\
- hdu1016
- JVM内存监控:VisualVM远程监控JVM
- 【Java】——zookeeper伪集群搭建异常 My id 4 not in the peer list