|
Java程序设计辅导资料五主 题:第三章 Java的继承性(课件)
学习时间:2020年10月26日—11月1日
“不忘初心、牢记使命”主题理论学习:
每周文摘:坚持党的领导,最根本的是坚持党中央权威和集中统一领导。党章规定“四个服从”,最根本的是全党各个组织和全体党员服从党的全国代表大会和中央委员会;党中央强调“四个意识”,最根本的是坚决维护党中央权威和集中统一领导。这都不是空洞的口号,不能只停留在表态上,要落实到行动上。
摘选自《在十九届中央纪律检查委员会第二次全体会议上的讲话》
内 容:
我们这周主要学习《Java程序设计》这门课程的第3章关于Java继承性方面的介绍以及依次相关内容。希望通过下面的内容能使同学们对面向对象程序设计语言的继承性有进一步的了解。
知识要点:
继承的概念
派生类
继承的原则和作用
Object类
访问权限
子类构造方法
重点难点:
派生类
继承的原则和作用
访问权限
子类构造方法
继承(inheritance)是面向对象的重要概念之一,它提供在已有类的基础上创建新类的方式,是构造可复用软件的有效机制。
由继承派生类
根据一个已知的类由继承方式创建一个类,使新创建的类能自动拥有被继承类的全部成员,被继承的类称为父类或超类(superclass),通过继承产生的新类称为子类(subclass)或派生类。使用关键字extends声明一个类继承指定的父类,声明格式如下:
[修饰符] class 类<泛型> [extends 父类] [implements 接口列表]
Java的类是单继承的,一个类只能有一个父类,不能有多个父类。继承原则及作用
继承原则
继承性的基本原则说明如下:
1、子类继承父类的成员变量
子类继承父类所有的成员变量,包括实例成员变量和静态成员变量。
2、子类继承父类除构造方法以外的成员方法
子类继承父类除构造方法以外的成员方法,包括实例成员方法和静态成员方法。子类能够继承父类的析构方法,通过子类对象可以调用从父类继承来的成员方法。
3、子类不能继承父类的构造方法
子类没有继承父类的构造方法,因为父类的构造方法只能创建父类实例并初始化,无法创建子类实例。子类必须声明自己需要的构造方法,用于创建子类实例并初始化。
4、子类可以增加成员,可以重定义从父类继承来的成员,但不能删除它们。
继承的作用
继承在父类和子类之间建立了联系,子类对象即是父类对象,子类自动拥有父类的全部成员,包括成员变量和成员方法等,使父类成员得以传承和延续;子类不能删除但可以更改从父类继承来的成员,使父类成员适应新的需求;子类也可以增加自己的成员,使类的功能得以扩充。
Java只允许类之间的单继承,父类和子类是一对多的关系,一个子类只有一个父类。一个父类可以有多个子类,每个子类又可以作为父类再有自己的子类,这些类组成具有层次关系的树结构,Java约定该树的根是Object类。具有继承关系的、相距多个层次的类之间称为祖先类与后代类,父类也称为直接祖先类。
继承是实现软件复用的重要措施,继承增强了软件的可扩充能力,提高了软件的可维护性。后代继承祖先的成员,使祖先类的优良特性得以代代相传。如果更改祖先类中的内容,这些修改过的内容将直接作用于后代类,后代类无需进行维护工作。同时,后代类还可以增加自己的成员,不断地扩充功能;或者重写祖先类的方法,让祖先类的方法适应新的需求。因此,通常将通用功能设计在祖先类中,而将特殊功能设计在后代类中。图5-1是表示单继承使所有类组成树结构的图示。
图5-1 单继承使所有类组成树结构
Object类
Object类定义对象的基本状态和行为,它没有成员变量,部分声明如下:
public class Object
{
public Object() //构造方法
public String tostring() //返回描述当前对象的字符串
public boolean equals(Object obj) //比较当前对象与obj是否相等
protected void finalize() throws Throwable
//析构方法
}
当一个类没有声明父类时,Java默认该类的父类是Object。例如,下列两种声明等价:
public class Person //默认其父类是Object
public class Person extends Object
因此,所有的类都是Object的子类,都从Object类继承了equals()和toString()等方法。
子类对父类成员的访问权限
虽然子类继承了父类的所有成员,但并不是对所有成员都有访问权限。
子类不能访问父类的私有成员
子类不能访问父类声明为私有的成员变量和成员方法。
子类能够访问父类的公有成员和保护成员
子类对父类的缺省权限成员的访问控制,以包为界分两种情况:可以访问当前包中父类的缺省权限成员,不能访问其他包中父类的缺省权限成员。
类中成员的访问控制权限体现封装的信息隐蔽原则:如果仅限于本类使用,声明成员为private;如果可被子类使用,声明成员为protected;如果希望被所有类访问,声明成员为public。子类的构造方法
子类对象包含从其父类继承来的成员变量,以及子类声明的成员变量,子类构造方法必须对这些成员变量进行初始化。而父类构造方法已对父类声明的成员变量进行了初始化,因此,子类构造方法必须调用父类的某一个构造方法。
1、使用super()调用父类构造方法
在子类的构造方法中,可以使用“super引用”调用父类的构造方法。语法格式如下:
super([参数列表])
例如,Student类可声明构造方法如下,super()调用必须是第一条语句。
public student(String name, MyDate birthday, String spec)
{
super(name, birthday);
this.speciality=spec; //调用父类同参数的构造方法
}
2、默认执行super()
在以下两种情况下,Java默认执行super(),调用父类的构造方法。
·当一个类没有声明构造方法时,Java为该类提供默认构造方法,调用super()执行父类无参数的构造方法。Java为Student类提供的默认构造方法声明如下:
public Student() //Java提供的默认构造方法
{
Super();
}
·如果子类的构造方法没有调用super()或this(),Java将默认执行super()。例如,Java在以下Student类的构造方法中,第一句将默认执行super()。
public Student()
{
super(); //Java默认调用
speciality="";
}例题
一、填空题
1、类的()性是构造可复用软件的有效机制。
2、Java的类是()的,一个类只能有一个父类,要在Java中实现多重继承则需要()。
3、在子类的构造方法中,使用()调用父类的构造方法。
二、判断题
1、子类继承父类,则继承了父类中所有的方法。()
2、在Java中,Object类是其他所有类的祖先类。()例题答案
一、填空题
继承
单继承 接口+多重继承
super引用
二、判断题
错误
正确本内容由易百教育整理发布
网址www.openhelp100.com
QQ 515224986
|
|