第七章 多边形 2018-10-12

1.多态

绑定:将一个方法调用同一个方法主体连接到一起就称为“绑定(Binding)。

早期绑定:程序运行以前执行绑定

后期绑定、运行期绑定:绑定在运行期间进行,以对象的类型为基础。Java中绑定的所有方法都采用后期绑定技术。除被修饰为final,声明final告诉编译器不需要进行动态绑定,生成更高效率的代码。

2.过载和覆盖

覆盖:只有一种含义,只是原先的含义完全被后来的含义取代
过载:同一样东西在不同的地方具有多种含义

3.抽象

抽象类:包含了抽象方法的一个类。如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。否则,编译器会向我们报告一条出错消息。

4.接口 interface

1.接口的基本数据类型,默认为staticfinal,因此名字大写

2.接口方法默认为public

3.先extends 再 implements

4.只能继承一个方法,可实现多个接口

5.内部类

普通(非内部)类不可设为private或 protected——只允许 public或者defualt。

内部类被设为 private,除了外部类之外,其他任何东西都不能访问它。内部类可以protected

内部类可以访问封装类的成员

内部类意义:

(1) 正如前面展示的那样,我们准备实现某种形式的接口,使自己能创建和返回一个句柄。

(2) 要解决一个复杂的问题,并希望创建一个类,用来辅助自己的程序方案。同时不愿意把它公开。

内部类定义:

(1) 在一个方法内定义的类

(2) 在方法的一个作用域内定义的类

(3) 一个匿名类,用于实现一个接口

(4) 一个匿名类,用于扩展拥有非默认构建器的一个类  super.value() *47

(5) 一个匿名类,用于执行字段初始化 ---要求使用的外部对象为final属性 保证内外部引用不可变

(6) 一个匿名类,通过实例初始化进行构建(匿名内部类不可拥有构造器

static内部类

引用外部类对象:

内部类:this.对象

外部类:外部类.this.对象

从内部类继承

继承只对内部类进行扩展 InheritInner extends WithInner.Inner

构造器必须采用以下形式:InheritInner(WithInner wi) {wi.super();}

内部类覆盖:

内部类不直接被覆盖,若继承的内部类同样继承内部类,则可覆盖。

初始化过程:内部类--》外部类--》继承内部类(会再一次调用继承类)--》继承外部类

内部类标识符:

内部类也生成相应的.class 文件,例如 WithInner$Inner.class

为什么要用内部类:控制框架:


6.构造器调用顺序

(1) 调用基础类构建器。这个步骤会不断重复下去,首先得到构建的是分级结构的根部,然后是下一个衍生类,等等。直到抵达最深一层的衍生类。

(2) 按声明顺序调用成员初始化模块

(3) 调用衍生构造器的主体。

7.构建器内部的多形性方法的行为

构造器中调用继承的方法,继承方法中调用继承类中的变量,则代码存在问题。

8.下溯造型与运行期类型标识

下溯造型:分级结构中向下移动

运行期类型标识(RTTI):运行期间对类型进行检查的行为

你可能感兴趣的:(第七章 多边形 2018-10-12)