《Java编程思想》读书笔记之多态的理解

happyjackqu 2016-01-31 08:39:12
《Java编程思想》读书笔记之多态的理解
http://blog.csdn.net/happyjackqu/article/details/50453809
1. 生成一个派生类的对象,并将其向上转型为其基类的引用。

2. 在基类中定义一些方法,并在派生类中覆盖这些方法。

3. 用上述基类的引用调用这些方法。

结果:

实际调用的是派生类中的方法。

好处:

可以编写一些只与基类有关的代码,当应用于不同的派生类的对象时,这些方法不需要做

任何改动就能使用。这些代码就属于“不变的部分”。

举例:

Shape s = new Circle();

s.draw();/*实际调用的是Circle类中覆盖的那个draw方法*/

之所以能够达到这种效果,是因为Java内部的方法调用机制实现了后期绑定(也称运行时绑定),

即在运行时根据对象的类型绑定到具体的方法的实现。

调用同样的“接口”,具体的行为却会不同,所以叫“多态”。
...全文
336 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_32657835 2017-03-05
  • 打赏
  • 举报
回复
感谢楼主分享
自由的刺猬 2016-02-01
  • 打赏
  • 举报
回复
楼主理解的挺透彻
乘着风去破浪 2016-02-01
  • 打赏
  • 举报
回复
多谢楼主 ,学习 ,学习
本书内容非常全面,涵盖了《Java编程思想》、《Java学习笔记》等书籍所有知识要点,并结合作者自己经验总结而编写,内容丰富程度胜过一切书籍 众所周知,一般书籍为了销售需要,往往很少的知识点,却需要添加大量的废话、例子,以增加书本厚度,使得阅读者需要花大量时间去看、理出要点,非常浪费时间,本电子书仅仅为了作者查阅资料用而编写,因此内容虽丰富,但却非常精简,结构清晰,语言简洁,非常易于理解,可大大节省了阅读者的学习时间,欢迎下载 目录: .....Java语言认识 ..........概述 ..........Java语言认识 ..........Java底层平台认识 .....JDK安装与配置 ..........安装JDK ..........设置环境变量 ..........虚拟机的内存 .....JDK工具使用 ..........javac.exe(编译) ..........java.exe(运行) ..........javadoc.exe(生成文档) ..........jar.exe(打包) ..........native2ascii.exe(转码) ..........apt.exe(注解处理工具) .....Java语法入门 ..........概述 ..........变量与数据类型 ..........标识符 ..........运算符 ..........控制台输入输出 ..........流程控制 ..........数组的使用 .....字符串和正则表达式 ..........字符串 ..........正则表达式 .....类和对象 ..........类的对象的使用 ..........自定义类 ..........自定义时使用修饰符 .....继承和多态 ..........继承(扩展) ..........多态 .....接口和抽象类 ..........接口和抽象类 ..........接口和抽象类相关设计模式 .....GUI(图形用户界面)和Applet ..........GUI_添加组件 ..........GUI_添加事件 ..........GUI_双缓冲作图 ..........Applet .....异常处理 ..........概述 ..........异常处理 ..........自定义异常 .....断言 ..........概述 ..........使用断言 .....枚举 ..........概述 ..........定义枚举 .....泛型 ..........概述 ..........定义泛型类 .....注解(Annotation) ..........概述 ..........注解的定义/使用/解析 .....I/O_体系 ..........认识IO ..........Java中的IO .....I/O_BIO ..........I/O流对象与使用 ..........文件相关类的使用 .....集合 ..........概述 ..........集合API .....线程 ..........概念 ..........操作线程 ..........线程安全-使用同步 ..........线程池-ThreadPoolExecutor .....反射 ..........概述 ..........Class类 ..........类的加载 ..........操作对象
本书由著名编程理论专家所著,是美国麻省理工学院电子工程与计算机科学系的编程实践课程教材。书中讨论了怎样构建具有高可靠性、易于维护和快速修改的软件的开发方法,强调了软件的模块化开发思想,用丰富的实例告诉读者怎样进行模块化并合理地组织各种模块以构成大型软件系统的过程。该书的前8章首次提出编程领域中的一些十分有用的抽象概念,如过程抽象、迭代抽象以及最重要的数据抽象等。此外,本书通过大量的例子,用非形式化的规范来详细定义这些数据抽象,描述模块所需完成的任务,并定义了模块所需的性能边界条件。该书的后7章主要讲述了怎样利用抽象构建大型软件,主要侧重于软件工程的内容,基于类型层次结构提出对于数据抽象的调试、测试、需求分析、自顶向下和迭代的开发过程,还简要介绍了设计模式的概念。 这是一本传授思想的书籍,能使读者透过现象看到本质,从而掌握编写程序的关键。本书非常适合作为软件学院的教材,在低年级即可培养学生对于事物的抽象能力。此外,本书也非常适合软件开发人员参考。 第1章 概述 1 1.1 分解和抽象 1 1.2 抽象 2 1.3 本书其他要旨 8 练习 8 第2章 理解Java中的对象 9 2.1 程序结构 9 2.2 包 10 2.3 对象和变量 11 2.4 类型检查 14 2.5 分派 18 2.6 类型 18 2.7 数据流输入/输出 20 2.8 Java应用程序 20 练习 22 第3章 过程抽象 24 3.1 抽象的好处 24 3.2 规格 25 3.3 过程抽象的规格 26 3.4 实现过程 29 3.5 设计过程抽象 31 3.6 小结 34 练习 35 第4章 异常 36 4.1 规格 37 4.2 Java异常机制 38 4.3 异常编程 42 4.4 设计问题 43 4.5 防御编程 46 4.6 小结 47 练习 47 第5章 数据抽象 48 5.1 数据抽象的规格 49 5.2 使用数据抽象 53 5.3 实现数据抽象 54 5.4 附加方法 59 5.5 用于理解实现的一些帮助 63 5.6 数据抽象实现的属性 69 5.7 推理数据抽象 71 5.8 设计问题 74 5.9 局部性和可更改性 76 5.10 小结 77 练习 77 第6章 迭代抽象 79 6.1 Java中的迭代 81 6.2 迭代器规格 82 6.3 使用迭代器 83 6.4 实现迭代器 85 6.5 发生器的表示式不变量和抽象函数 87 6.6 有序列表 87 6.7 设计问题 91 6.8 小结 92 练习 92 第7章 类型层次 94 7.1 赋值与分派 95 7.2 定义一个类型层次 97 7.3 用Java定义层次 97 7.4 一个简单的例子 98 7.5 异常类型 103 7.6 抽象类 103 7.7 接口 106 7.8 复合实现 107 7.9 子类型的含义 112 7.10 类型层次的讨论 117 7.11 小结 118 练习 119 第8章 多态抽象 121 8.1 多态数据抽象 121 8.2 使用多态数据抽象 123 8.3 重新访问相等性 124 8.4 附加方法 125 8.5 更多灵活性 127 8.6 多态过程 130 8.7 小结 130 练习 131 第9章 规格 133 9.1 规格和规格满足集 133 9.2 规格的某些标准 133 9.3 为什么要有规格 138 9.4 小结 140 练习 140 第10章 测试与调试 141 10.1 测试 142 10.2 测试过程 147 10.3 测试迭代器 147 10.4 测试数据抽象 148 10.5 测试多态抽象 150 10.6 测试一个类型层次 150 10.7 单元和综合测试 152 10.8 测试工具 153 10.9 调试 155 10.10 防御性编程 159 10.11 小结 160 练习 161 第11章 需求分析 163 11.1 软件生命周期 163 11.2 需求分析总结 165 11.3 股票跟踪系统 168 11.4 小结 171 练习 172 第12章 需求规格 173 12.1 数据模型 173 12.2 需求规格 180 12.3 股票跟踪系统的需求规格 183 12.4 搜索引擎的需求规格 187 12.5 小结 190 练习 191 第13章 设计 193 13.1 设计过程纵览 193 13.2 设计笔记本 195 13.3 交互式程序的结构 199 13.4 开始设计 202 13.5 对方法的讨论 208 13.6 继续进行设计 209 13.7 查询抽象 210 13.8 WordTable抽象 214 13.9 最后加工 216 13.10 FP和UI间的交互 216 13.11 模块依赖图表vs数据模型 218 13.12 回顾及讨论 219 13.13 自顶向下的设计 222 13.14 小结 222 练习 223 第14章 从设计到实现 224 14.1 评估一个设计 224 14.2 整理程序开发过程 232 14.3 小结 236 练习 237 第15章 设计模式 238 15.1 隐藏对象创建 239 15.2 聪明的对策 242 15.3 桥接器模 248 15.4 过程也必须是对象 249 15.5 复合 252 15.6 间接的力量 258 15.7 发布/订阅 260 15.8 小结 263 练习 263 术语表 264

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧