Jav最新实用教程 第互章类的重用
Java最新实用教程 第五章类的重用
Jav最新实用教程 学习目的: 掌握类的继承及 Object类 掌握终结类及终结方法 掌握抽象类 理解类的组合 熟悉常用内置包 学习重点 掌握类的继承与组合 掌握抽象类及内置包 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 2 ⚫ 学习目的: ▪ 掌握类的继承 及Object类 ▪ 掌握终结类及终结方法 ▪ 掌握抽象类 ▪ 理解类的组合 ▪ 熟悉常用内置包 ⚫ 学习重点: ▪掌握类的继承与组合 ▪ 掌握抽象类及内置包
Jav最新实用教程 第五章类的重用 本章提要: 类的继承及 Object类 终结类及终结方法 抽象类 继承与组合 常用包 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 3 第五章 类的重用 本章提要: • 类的继承 及Object类 • 终结类及终结方法 • 抽象类 • 继承与组合 • 常用包
Jav最新实用教程 51类的继承 511继承的概念 继承是由己有的类创建新类的机制,是面向对象程序设计的重 要特征之一。一个新类可以从现有的类中派生,这个过程称为 类继承。派生出的新类称为已有类的子类,已有类称为父类或 超类 继承性很好地解决了软件的可重用性问题。通过继承,一个类 可以用有已由类的所有功能。因此,只需指明新类与现有类的 不同,即增加自己的属性和方法即可。 java要求每个类都有父类,当没有显式继承父类时,父类隐 含为java.10ng包中的 object:类。一个父类可以同时拥有多个 子类,此时这个父类实际上时所有子类的共有属性即方法的 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 4 5.1 类的继承 5.1.1继承的概念 继承是由已有的类创建新类的机制,是面向对象程序设计的重 要特征之一。一个新类可以从现有的类中派生,这个过程称为 类继承。派生出的新类称为已有类的子类,已有类称为父类或 超类。 继承性很好地解决了软件的可重用性问题。通过继承,一个类 可以用有已由类的所有功能。因此,只需指明新类与现有类的 不同,即增加自己的属性和方法即可。 java要求每个类都有父类,当没有显式继承父类时,父类隐 含为java.long包中的object类。一个父类可以同时拥有多个 子类,此时这个父类实际上时所有子类的共有属性即方法的
Jav最新实用教程 集合,而每一个子类则是父类的特殊化,是在公共属性的基础 上的功能及属性的扩展和延伸 ava不支持类的多重继承,只支持可的单继承,即每个子类只 能有一个直接父类,类的层次结构为树状结构, object类为树 的根节点 特别要注意的是:通常根据应用定义自己的类层次,在定义类 的层次结构中,父类与子类的关系是一般于特殊的关系,而不 是整体与部分的关系,如图5-1、5-2所示。 般 学生 姓名 身高 高中生 大学生 具体心 图5-2错误的类层次结构图 2021年2月20日星期六 图5-1类层次结构图举例
Java最新实用教程 2021年2月20日星期六 5 集合,而每一个子类则是父类的特殊化,是在公共属性的基础 上的功能及属性的扩展和延伸。 java不支持类的多重继承,只支持可的单继承,即每个子类只 能有一个直接父类,类的层次结构为树状结构,object类为树 的根节点。 特别要注意的是:通常根据应用定义自己的类层次,在定义类 的层次结构中,父类与子类的关系是一般于特殊的关系,而不 是整体与部分的关系,如图5-1、5-2所示。 图5-1 类层次结构图举例 图5-2 错误的类层次结构图
Jav最新实用教程 与多重继承(相应的类结构为网状结构)相比,单继承比较简 单,掌握、控制起来相对容易。Jaⅵ虽然只支持单继承,但可 通过接口来实现多继承功能 采用继承的机制来组织、设计系统的类,可以提高程序的抽象 程度,使之更接近于人类的思维方式;采用继承还可以使编写 的程序结构清晰,节省了编程时间;同时因为代码的编写量减 也降低了程序维护的工作量。 5.1.2继承的语法 在java语言中,子类对父类的继承是在类的声明语句中实现的 前面提到类声明语句如下: 类修饰符] class类名[ extends父类名][ implements[,接口名 /类体 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 6 与多重继承(相应的类结构为网状结构)相比,单继承比较简 单,掌握、控制起来相对容易。Java虽然只支持单继承,但可 通过接口来实现多继承功能。 采用继承的机制来组织、设计系统的类,可以提高程序的抽象 程度,使之更接近于人类的思维方式;采用继承还可以使编写 的程序结构清晰,节省了编程时间;同时因为代码的编写量减 少,也降低了程序维护的工作量。 5.1.2继承的语法 在java语言中,子类对父类的继承是在类的声明语句中实现的 。前面提到类声明语句如下: [类修饰符] class 类名 [extends 父类名] [implements [,接口名] { //类体 }
Jav最新实用教程 其中,关键字 extends说明了此处定义的“类名”继承了“父类 名”指定的类中的属性和行为。 例5.1:设计人员类。 分析:在一个公司中,有普通职工( Employees)和管理者( Managers)两类人员。对这两类人员的属性和行为进行分析可 知,管理者是职工中叫特殊的一部分。可以将类的关系设计如 父类 Employee可能有的属性包括 员工号(id),姓名(name),地址( address),电话( phone),职责(task)。 管理者( Manager)除具有以上所有属性外,还包括特殊的属 性,可以将 Managers设计为子类,它新具有的属性可以是:所 管理的职员(1ist) 依据分析,可设计如下两个类 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 7 其中,关键字extends说明了此处定义的“类名”继承了“父类 名”指定的类中的属性和行为。 例5.1:设计人员类。 分析:在一个公司中,有普通职工(Employees)和管理者( Managers)两类人员。对这两类人员的属性和行为进行分析可 知,管理者是职工中叫特殊的一部分。可以将类的关系设计如 下: 父类Employee可能有的属性包括: 员工号(id),姓名(name),地址(address),电话( phone),职责(task)。 管理者(Manager)除具有以上所有属性外,还包括特殊的属 性,可以将Managers设计为子类,它新具有的属性可以是:所 管理的职员(list)。 依据分析,可设计如下两个类
Jav最新实用教程 父类 public class Employee 成员变量 id String name, phone, task ∥方法略 子类 public class Manager extends Employee 成员变量 String list ∥方法略 明显地,子类继承了父类的属性,所以简化了子类的定义过程 ,提高了程序的重用性。 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 8 父类: public class Employee {//成员变量 int id; String name,phone,task; //方法略 } 子类: public class Manager extends Employee {//成员变量 String list; //方法略 }明显地,子类继承了父类的属性,所以简化了子类的定义过程 ,提高了程序的重用性
Jav最新实用教程 另外,子类继承父类时,父类的所有成员不一定都可以被继承 ,也就是说,继承受一些条件的限制,如父类成员前的访问控 制修饰符、子类与父类所在包的位置关系等因素。 前面第三章中曾经提到,访问控制修饰符主要在继承或包之间 的成员访问时进行权限的控制 public公有访问控制符。该修饰符修饰的变量称为公有 成员,如果公有成员又在一个公有类中,那么这个成员将能被 所有的类访问。 在的装ced保护访问控制符。该修饰符修饰的成员能被盱 自身、同一个包中的所有类、其他包中的该类的子类所 访问。能被其他包中的该类的子类访问是 protected成员的重要 特征。 friendly默认访问控制符。如果成员前没有访问控制符 则默认为 friendly类型,称为友好成员。此类变量或方法可以 被 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 9 另外,子类继承父类时,父类的所有成员不一定都可以被继承 ,也就是说,继承受一些条件的限制,如父类成员前的访问控 制修饰符、子类与父类所在包的位置关系等因素。 前面第三章中曾经提到,访问控制修饰符主要在继承或包之间 的成员访问时进行权限的控制: ⚫ public公有访问控制符。该修饰符修饰的变量称为公有 成员,如果公有成员又在一个公有类中,那么这个成员将能被 所有的类访问。 ⚫ protected 保护访问控制符。该修饰符修饰的成员能被所 在的类自身、同一个包中的所有类、其他包中的该类的子类所 访问。能被其他包中的该类的子类访问是protected成员的重要 特征。 ⚫ friendly 默认访问控制符。如果成员前没有访问控制符 ,则默认为friendly类型,称为友好成员。此类变量或方法可以 被
Jav最新实用教程 同一个包中的其他类所访问。 private私有访问控制符。该修饰符修饰的成员仅仅能 所在类自身访问,任何其他类都不可访问,包括该类的子类。 以上修饰符不但可以控制变量的访问情况,还可以用同 样的规律控制类的成员方法的访问权限。 1.公有变量及方法的继承 还以上面的两个类为例,假设父类还有一个方法 get Task 例52:将父类成员声明为pubi,验证子类的继承效果。 父类 public class Employee 成员变量 id String name, phone, task public String get Tasko∥/公共成员方法 return task. 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 10 同一个包中的其他类所访问。 ⚫ private 私有访问控制符。该修饰符修饰的成员仅仅能被 所在类自身访问,任何其他类都不可访问,包括该类的子类。 ⚫ 以上修饰符不但可以控制变量的访问情况,还可以用同 样的规律控制类的成员方法的访问权限。 1. 公有变量及方法的继承 还以上面的两个类为例,假设父类还有一个方法getTask。 例5.2:将父类成员声明为public,验证子类的继承效果。 父类: public class Employee {//成员变量 int id; String name,phone,task; public String getTask()//公共成员方法 { return task; } }