我读的是Java编程思想第四版英文版(Thinking in Java, 4th Edition)。
这本书果然是讲解Java基础以及OOP思想的神作!对于很多Java的基础内容讲得都很到位,没有那种一掠而过的感觉。在读的过程中,有很多启发性的瞬间,常常会给人一种恍然大悟的感觉——噢,原来这个概念是应该这样理解的,同时也能了解到是怎样将这些概念应用到实际开发中的。当然其中也有很多部分是在初读的时候无法深刻理解的,于是就有了反复思考、咀嚼的过程。
结果今天突然想到,如果能把这些感悟和思考统统记录下来,不仅自己可以在今后反过头来参考,而且还可以与广大的开发者分享我的思想,得到高人的指正,一举两得。这样就有了这系列的Java编程思想第四版的读书笔记。
由于我现在正读到了多态(Polymorphism)一章,因此我的读书笔记就将从多态写起。之前的章节和内容我打算以后在进行补充。
Java编程思想第四版读书笔记(一)(就暂定为第一篇吧!)
多态(Polymorphism)
1.最基础但是最难说清楚的问题——什么是多态?
----
简单地说,多态就是“多种形态”。在面向对象编程语言中,这就意味着从父类继承了相同的公共接口,但在使用这些接口的时候,会呈现出不同的形式与形态——实际调用的是经过动态绑定之后的已被覆写而变得有所不同的方法。
要理解这其中的含义,我觉得最好还是从对象在内存中的分布来看。
在使用了向上转型(upcast)之后,指向一个对象的引用,其类型是该对象的基类类型,但实际上内存中的对象仍然为继承子类的实例,因此在调用相应的方法的时候,会调用该实例中的具体方法,而不是基类中的抽象方法。
不同的子类对象会调用不同子类对象中的对应方法,于是就呈现出来“多态”的情况。
事实上,多态是离不开继承和数据抽象的,可以从下面一项看出。
2.多态3条件
----
3.向上转型(Upcasting)
----
对象既可以作为它自己本身的类型使用,也可以作为基类型使用。把某个对象的引用视为对其基类型的引用的做法就叫做向上转型。
4.一定要多加留意“覆写私有方法”这种不易察觉的错误
----
父类的私有方法,默认也是被final修饰的,并且对子类来说也是不可见的,因此根本不能被继承,当然也就不能被覆写(override)了。
如果不小心错误地在子类中“覆写”了一个父类的私有方法,一定要注意,
这其实是一个全新的方法,而非继承而来。
这种错误编译器是检查不出来的,因此需要程序员多加留意。
分享到:
相关推荐
多态 Polymorphism 马克-to-win java视频的详细介绍
多态 Polymorphism 马克-to-win java视频的详细的介绍
多态Polymorphism 马克-to-win java视频的详细描述介绍
多态 Polymorphism 马克-to-win java视频的详细描述介绍
Java编程思想第08章多态.ppt
本书作者根据自己学习C++的亲身体会及多年教学经验,用简单的例子和简练的叙述讲解C++编程,别具特色。 全书共分十八章,内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流...
java 笔记, 讲解多态 面向对象
java多态、继承练习题,包含题目与答案,............................................................................................................
JAVA学习笔记,java知识点总结
Java基础之多态课程PPT适用于基础学习者使用,很好的课程资源
内容为本人学习java多态封装时整理的基础知识笔记,内容包括java中的多态和封装
完整版 Java编程基础入门教程 Java语言程序设计 第5章_继承与多态(共61页).ppt 完整版 Java编程基础入门教程 Java语言程序设计 第6章_图形用户界面设计(共97页).ppt 完整版 Java编程基础入门教程 Java语言程序...
Java多态的讲解
Java 语言程序设计:第5章接口多态.ppt
java对象的引用,控制程序流,初始化和清除,封装,复用类,多态,接口和内部类,异常处理try——catch,类的检查,对象的集合,i/o系统,并发,分析与设计,对象的传递和返回
Java基础入门教程 Java编程技术05 继承和多态(2学时)(共40页).ppt Java基础入门教程 Java编程技术06 类的高级特征(4学时)(共55页).ppt Java基础入门教程 Java编程技术07 异常(2学时)(共27页).ppt Java基础入门...
本书作者根据自己学习C++的亲身体会及多年教学经验,用简单的例子和简练的叙述讲解C++编程,别具特色。 全书共分十八章,内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流...
这边文章的编程代码:https://blog.csdn.net/qq_41086359/article/details/103650238 Java多态,面向对象编程题
java多态实现的课件,给那些需要的人 讲述了java多态的概念、分类、实现 综合案例讲解、总结多态的作用
Java第8章 继承和多态含源代码 Java第8章 继承和多态含源代码Java第8章 继承和多态含源代码 Java第8章 继承和多态含源代码 Java第8章 继承和多态含源代码 Java第8章 继承和多态含源代码