Thinking in java 笔记三

第八章 多态

多态是继数据抽象和继承之后的第三种基本特征

8.1 再论向上转型

8.2 转机

  方法调用绑定,java除了static和final(private方法属于final方法)外其他所有方法都是后期绑定

  多态是一项将改变的事物与未变的事物分离开来的重要技术

  不要试图覆盖基类private方法,只是在之类中产生了一个全新的方法

  域的访问操作由编译器解析不是多态的,静态方法也不具有多态性

8.3 构造器和多态

  构造器调用顺序 P159

  如果需要清理,在子类覆盖基类清理方法,清理完自身后调用基类清理方法

  构造器内部尽量避免调用其他方法(如果产生多态会造成位置错误)

8.4 协变返回类型

  在导出类中的被覆盖方法可以返回基类方法返回类型的某种导出类型

8.5 用继承进行设计

  优先使用组合而不是继承

  用继承表示行为间的差异,并用字段表达状态上的变化

  纯继承(is-a)与扩展(is-like-a),向下转型与与运行时类型识别

第九章 接口

接口和内部类为我们提供了一种将接口和实现分离的更加结构化的方法

9.1 抽象类和抽象方法

  通过接口建立起一种基本形式,以此表示所有导出类的共同部分

  抽象类和抽象方法可以使类的抽象性明确起来,并告诉用户和编译器打算怎么使用它们

9.2 接口

  接口被用来建立类与类之间的协议

  接口域隐似的是static和final的

  策略模式,传递接口的不同实现表现出不同的行为

  适配器模式,将已有的实现适配新的接口

9.3 完全解耦

9.4 java中的多重继承

  实现多个接口

9.5 通过继承扩展接口

  继承的多个接口中允许包含相同的方法,但只有返回类型不同的方法是不能区分的

9.6 适配接口

  让方法接受接口类型是一种让任何类都可以对该方法进行适配的方式,这是使用接口的强大之处

9.7 接口中的域

  不能为空,可以被非常量表达式初始化

  不是接口的一部分,值被存储在该接口的静态存储域内

9.8 嵌套接口

9.9 接口和工厂

  工厂方法设计模式

任何抽象性都应该是真正需求而产生的,必需时考虑重构接口而不是添加额外级别的间接性

恰当的原则是优先选择类而不是接口,如果接口的必需性变得非常明确,那么就进行重构

第十章 内部类

将一个类的定义放在另一个类的内部。将一些逻辑相关的类组织在一起,并控制位于内部的类的可视性

10.1 创建内部类

10.2 连接到外部类

  内部类自动拥有对其外围类所有成员的访问权;内部类对象拥有外部类对象的this引用

10.3 使用.this和.new

  使用外部类对象创建内部类对象

10.4 内部类与向上转型

10.5 在方法和作用域内的内部类

10.6 匿名内部类

10.7 嵌套类

  内部类声明为static

10.8 为什么需要内部类

  内部类提供了某种进入外围类的窗口

  闭包与回调,控制框架

10.9 内部类的继承

10.10 内部类的覆盖

  覆盖内部类就好像它是外围类的一个方法,并不起什么作用

10.11 局部内部类

10.12 内部类标示符

  外部类加$

原文地址:https://www.cnblogs.com/coderway/p/4194659.html