第七章 面向对象高级特性

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JAVA编程基础

——面向对象高级特性东软人才实训中心

3 Sept. 2008

©Neusoft Confidential

第七章:面向对象高级特性目标:

介绍Java中类的继承,封装,

多态,方法的重载与覆盖。抽象类及接口的概念与使用。Java中的包及类路径。引用数据类型的转换。包装类。访问权限修饰符的使用。final关键字。教学方法:讲授ppt+上机练习

本章要点

•类的继承

9继承的规则

9子类的构造方法

9方法的覆盖

9final关键字

•接口

9接口的规范

9引用数据类型的转换

9多态

•Java中的包

9包和访问权限修饰符•类的封装

Contents

1

类的继承

2

接口

3

Java中的包

4

类的封装

类的继承

•类的继承

9在Java 中定义一个类时,让该类通过关键字extends 继承一个已有的类,这就是类的继承(扩展)。9被继承的类称为父类(超类,基类),新的类称为子类(派生类)。

9子类继承父类的所有属性和方法,同时也可以增加自己的属性和方法。

使用继承+getDetail()

+getSalary()

+vehicleAllowance()-name -birth

-salary

-department

Officer

类的继承

•继承的语法示例Employee.java Worker.java

[修饰符] class 子类名extends父类名

类的继承•继承的好处

¾使编码更高效

¾易维护

类的继承

•继承的规则

9Java中只支持单继承,也就是说每个类只能有一个父类,不允许有多重继承

9一个父类可以有多个子类

9子类继承父类所有的属性和方法,但不继承父类的构造方法

示例TestWorker.java

类的继承

•子类的构造方法—子类不能继承父类的构造方法

9使用默认的构造方法

9在子类中的创建构造方法示例Worker.java

¾在子类中创建构造方法时,必须调用父类的构造方法

¾子类可以在自己的构造方法中使用super关键字来调用父类的构

造方法

super (参数1,参数2,…);

¾如果使用super关键字调用父类构造方法,必须写在该子类构造

方法的第一行

¾如调用的是父类中无参的构造方法,则可以不写super( )

¾如果子类中调用了父类无参的构造方法,而父类中没有无参构

造方法则系统编译出错

类的继承

•方法的覆盖(override)

9重写(rewrite)

9对从父类中继承来的方法进行改造

9在子类继承父类时发生

•方法覆盖的规则

9在子类中的覆盖方法与父类中被覆盖的方法应具有

¾相同的方法名

¾相同的参数列表(参数数量、参数类型、参数顺序都要相同)

¾相同的返回值类型

¾子类覆盖方法的访问权限要不小于父类中被覆盖方法的访问权限

示例Worker.java

类的继承

•final关键字

9final可以修饰的元素:

¾类:不能被继承

¾变量(属性和局部变量):不能被重新赋值

–在声明时赋值,或在构造方法中赋值

–系统不会对final属性默认的赋初始值¾方法:不能在子类中被覆盖,即不能修改。

示例Final.java TestFinal.java

Contents

1

类的继承

2

接口

3

Java中的包

4

类的封装

•抽象方法

9只有方法声明,没有方法实现的方法

[访问权限修饰符]abstract 返回值类型抽象方法名(参数列表);

class A {

abstract int method1(int a, int b);

}

•抽象类

9抽象类是抽象方法和非抽象方法的集合

[访问权限修饰符]abstract class 类名{

……

}

9特殊情况

¾全部是抽象方法

¾全部为非抽象方法

abtract class A {

String name;

abstract int method1(int a, int b);

void sayHi( ){

System.out.println(“Hello!”);

}

•抽象类

9注意:

¾抽象类不能被实例化;

¾其包含的抽象方法必须在其子类中被实现,否则该子类只能声

明为abstract;

¾抽象方法不能为static;

9在下列情况下,一个类必须声明为抽象类:

¾当一个类的一个或多个方法是抽象方法时;

¾当类是一个抽象类的子类,并且没有实现父类的所有抽象方

法,即只实现部分;

¾当一个类实现一个接口,并且不能为全部抽象方法都提供实现

时;

•接口的声明示例AudioDevice.java VideoDevice.java 9接口是常量和抽象方法的集合,而没有变量和方法的实现[访问权限修饰符]interface 接口名{

接口的成员

}

9接口的成员:

¾常量(字段)

¾抽象方法

相关文档
最新文档