黑马程序员技术交流社区

标题: Java编程思想!!!! [打印本页]

作者: zzm0717    时间: 2016-4-27 20:28
标题: Java编程思想!!!!
1. Java中的多态性理解(注意与C++区分)
Java中除了static方法和final方法(private方法本质上属于final方法,因为不能被子类访问)之外,其它所有的方法都是动态绑定,这意味着通常情况下,我们不必判定是否应该进行动态绑定—它会自动发生。

final方法会使编译器生成更有效的代码,这也是为什么说声明为final方法能在一定程度上提高性能(效果不明显)。
构造函数并不具有多态性,它们实际上是static方法,只不过该static声明是隐式的。因此,构造函数不能够被override。

在父类构造函数内部调用具有多态行为的函数将导致无法预测的结果,因为此时子类对象还没初始化,此时调用子类方法不会得到我们想要的结果。Java中构造函数的调用顺序:

(1)在其他任何事物发生之前,将分配给对象的存储空间初始化成二进制0;
(2)调用基类构造函数。从根开始递归下去,因为多态性此时调用子类覆盖后的draw()方法(要在调用RoundGlyph构造函数之前调用),由于步骤1的缘故,我们此时会发现radius的值为0;
(3)按声明顺序调用成员的初始化方法;
(4)最后调用子类的构造函数。
作者: 黑馬    时间: 2016-4-27 20:36
自学两个月了,完全看不懂
作者: 九天玄妖    时间: 2016-4-27 21:38
学习了{:2_31:}
作者: zzm0717    时间: 2016-4-27 22:53
黑馬 发表于 2016-4-27 20:36
自学两个月了,完全看不懂

没事,慢慢来,会懂的,加油!!!
作者: zzm0717    时间: 2016-4-27 22:55
九天玄妖 发表于 2016-4-27 21:38
学习了

好东西就分享嘛.哈哈哈
作者: wenle00    时间: 2016-4-27 23:01
有些地方还不能理解
作者: zzm0717    时间: 2016-4-27 23:05
wenle00 发表于 2016-4-27 23:01
有些地方还不能理解

谁都是一样的,不可能都能理解,都会了还用来这嘛
作者: 836668859    时间: 2016-4-28 21:54
赞,给力啊
作者: 836668859    时间: 2016-4-28 21:56
赞,不错,给力奥
作者: 今日微风    时间: 2016-4-28 22:01
编程思想,你懂不懂?
作者: Bellriver    时间: 2016-4-28 22:05
好好学习,天天向上!
作者: 今日微风    时间: 2016-4-28 22:08
学习,学习!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2