- 1
- 0
- 约2.35万字
- 约 23页
- 2017-02-08 发布于重庆
- 举报
Java编程思想重点整理笔记
目录
1. Java中的多态性理解(注意与C++区分) 1
2. is-a关系和is-like-a关系 4
3. 运行时类型信息(RTTI + 反射) 4
4. 代理模式与Java中的动态代理 11
5. 即时编译器技术 — JIT 14
6. 访问控制权限 15
7. 组合和继承之间的选择 16
8. final关键字 16
9. 策略设计模式与适配器模式的区别 17
10. 内部类 17
11. String类型 — 不可变 18
12. 序列化控制 22
?
1. Java中的多态性理解(注意与C++区分)
Java中除了static方法和final方法(private方法本质上属于final方法,因为不能被子类访问)之外,其它所有的方法都是动态绑定,这意味着通常情况下,我们不必判定是否应该进行动态绑定—它会自动发生。
final方法会使编译器生成更有效的代码,这也是为什么说声明为final方法能在一定程度上提高性能(效果不明显)。
如果某个方法是静态的,它的行为就不具有多态性:
class StaticSuper {
public static String staticGet() {
return Base staticGet();
}
public String dynamicGet() {
return Base dynamicGet();
}
}
class StaticSub extends StaticSuper {
public static String staticGet() {
return Derived staticGet();
}
public String dynamicGet() {
return Derived dynamicGet();
}
}
public class StaticPolymorphism {
public static void main(String[] args) {
StaticSuper sup = new StaticSub();
System.out.println(sup.staticGet());
System.out.println(sup.dynamicGet());
}
}
输出:
Base staticGet()Derived dynamicGet()
构造函数并不具有多态性,它们实际上是static方法,只不过该static声明是隐式的。因此,构造函数不能够被override。
在父类构造函数内部调用具有多态行为的函数将导致无法预测的结果,因为此时子类对象还没初始化,此时调用子类方法不会得到我们想要的结果。
class Glyph {
void draw() {
System.out.println(Glyph.draw());
}
Glyph() {
System.out.println(Glyph() before draw());
draw();
System.out.println(Glyph() after draw());
}
}
class RoundGlyph extends Glyph {
private int radius = 1;
RoundGlyph(int r) {
radius = r;
System.out.println(RoundGlyph.RoundGlyph(). radius = + radius);
}
void draw() {
System.out.println(RoundGlyph.draw(). radius = + radius);
}
}
public class PolyConstructors {
public static void main(String[] args) {
new RoundGlyph(5);
}
}
输出:
Glyph() before draw()RoundGlyph.draw(). radius = 0Glyph() after draw()RoundGlyph.RoundGlyph(). radius = 5
为什么会这样输出?这就要明确掌握Java中构造函数的调用顺序:
您可能关注的文档
- GMP标准.doc
- GMP检查缺整改报告如何撰写.doc
- GIS在电力系统中的应用.doc
- GIS空间数据可视化表达练习.doc
- haccp辅料包材危害分析工作单.doc
- hao四年级下教材《足球正脚背踢球》.doc
- HandKeyCR使用手册(全).doc
- HBsAg操作规程.doc
- HACCP综合题库.doc
- Hash在信息学竞赛中的一类应用.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)