第七章 多边形 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):运行期间对类型进行检查的行为

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,664评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,776评论 18 399
  • 诗经普遍采用赋、比、兴的手法。赋,就是指“直书其事”,也即铺展开来描写客观事物。比,即今天的比喻。兴,就是“先言他...
    白衣秀士阅读 472评论 2 2
  • 第一次在那家小店就餐后,我们打了85分。 那天的服务生是一个腼腆的男孩。“您点两菜一汤就可以了,再点吃不完,浪费了...
    老丁子阅读 318评论 2 1
  • 课程介绍 《Linux达人养成计划I》是慕课网上的一门Linux基础入门课程,主要学习方向是服务器管理使用的基本命...
    古洞洞阅读 828评论 0 11

友情链接更多精彩内容