20165101刘天野 2017-2018-2 《Java程序设计》第4周学习总结

20165101刘天野 2017-2018-2 《Java程序设计》第4周学习总结


教材学习内容总结

第五章:子类与继承

面向对象程序设计语言有三大特性:封装、继承和多态性。继承是面向对象语言的重要特征之一,没有继承的语言只能被称作“使用对象的语言”。继承是非常简单而强大的设计思想,它提供了我们代码重用和程序组织的有力工具。

我们把用来做基础派生其它类的那个类叫做父类、超类或者基类,而派生出来的新类叫做子类。Java用关键字extends表示这种继承/派生关系:

class ThisClass extends SuperClass { 
	//…
}

继承表达了一种is-a关系,就是说,子类的对象可以被看作是父类的对象。

不同访问属性的父类成员在子类中的访问属性:

父类成员访问属性 在父类中的含义 在子类中的含义
public 对所有人开放 对所有人开放
protected 只有包内其它类、自己和子类可以访问 只有包内其它类、自己和子类可以访问
缺省 只有包内其它类可以访问 如果子类与父类在同一个包内:只有包内其它类可以访问 否则:相当于private,不能访问
private 只有自己可以访问 不能访问

一、父类引用指向子类对象时

  • 若子类覆盖了某方法,则父类引用调用子类重新定义的新方法

  • 若子类未覆盖某方法,则父类引用调用父类本身的旧方法

  • 若子类覆盖了某属性,但父类引用仍调用父类本身的旧属性

  • 若子类未覆盖某属性,则父类引用调用父类本身的旧属性

  • 父类引用不能访问子类新定义的方法

二、子类引用指向自身对象时

  • 若子类覆盖了某方法,则子类引用调用子类重新定义的新方法

  • 若子类未覆盖某方法,则子类引用调用父类本身的旧方法

  • 若子类覆盖了某属性,则子类引用调用子类重新定义的新属性

  • 若子类未覆盖某属性,则子类引用调用父类本身的旧属性

  • 子类引用可以访问子类新定义的方法

第六章:接口与实现

接口的定义

使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。定义接口的基本格式如下:

[修饰符] interface 接口名 [extends 父接口名列表]{

[public] [static] [final] 常量;
[public] [abstract] 方法;
}

修饰符:可选,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。

接口名:必选参数,用于指定接口的名称,接口名必须是合法的Java标识符。一般情况下,要求首字母大写。

extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数。

方法:接口中的方法只有定义而没有被实现。

接口的实现

接口在定义后,就可以在类中实现该接口。在类中实现接口可以使用关键字implements,其基本格式如下:

[修饰符] class <类名> [extends 父类名] [implements 接口列表]{
}

修饰符:可选参数,用于指定类的访问权限,可选值为public、abstract和final。

类名:必选参数,用于指定类的名称,类名必须是合法的Java标识符。一般情况下,要求首字母大写。

extends 父类名:可选参数,用于指定要定义的类继承于哪个父类。当使用extends关键字时,父类名为必选参数。

implements 接口列表:可选参数,用于指定该类实现的是哪些接口。当使用implements关键字时,接口列表为必选参数。当接口列表中存在多个接口名时,各个接口名之间使用逗号分隔。

在类中实现接口时,方法的名字、返回值类型、参数的个数及类型必须与接口中的完全一致,并且必须实现接口中的所有方法。

代码托管

posted @ 2018-03-25 23:51  00埜00  阅读(169)  评论(3编辑  收藏  举报