1 / 12
文档名称:

JAVA-L10-Interfaces.ppt

格式:ppt   页数:12
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

JAVA-L10-Interfaces.ppt

上传人:中国课件站 2011/9/6 文件大小:0 KB

下载得到文件列表

JAVA-L10-Interfaces.ppt

文档介绍

文档介绍:Lesson 10: Interfaces 接口
LiFan(李凡)
Chengdu University of Information Technology
The Department puter Science
2005
Interfaces and Classes (接口与类)
类(Class)是Java语言编程的基本单位,但并不是面向对象设计(OOD)的基本单位,因为类不仅提供设计,而且提供了实现
面向对象设计的基本单位是类型(Type),类型只关注行为的需求,并不限制行为的具体实现
Java语言使用接口(Interface)来定义类型,接口只提供方法的声明,并不提供方法的实现,方法的实现由接口的实现类提供
在Java语言中,接口是一种纯粹的设计组件
单亲继承与多亲继承
Java语言中,类(Class)只支持单亲继承,一个类只能有唯一的父类
Java语言中,接口(Interface)可支持多亲继承,一个接口可以有多个父接口,子接口拥有所有父接口中声明的方法
Supertypes and Subtypes
一个类的父类和实现的所有接口都称为这个类的超类型(Supertype),而这个类称为其超类型的子类型(Subtype)
子类型的对象引用可以造型成其任意超类型(类或接口)的对象引用,这就是对象的多态性
通过接口类型的对象引用只能访问接口中声明的成员
Declaring Interfaces
声明接口的语法如下:
<修饰符> interface <接口名>{
…接口成员声明…
}
接口名的命名规范与类相同,接口也可以指定所属的包
Interface Modifiers
接口的修饰符可以有以下几种:
(1) public —与类的public修饰符相同
(2) abstract —通常被省略,因为接口中的方法都是抽象的
(3) strictfp —通常并不能限制接口中方法的实现,一般不使用
Members of Interface
接口中可以声明以下成员:
(1) 域
(2) 方法
(3) 嵌套类和嵌套接口
接口中的成员都是public的,不能指定其它的访问控制修饰符
接口中的域默认是static final的,必须显式初始化
接口中的方法只能提供方法头声明,不能提供实现,且除abstract外,不能使用其它修饰符
Interface Verbose{
int SILENT = 0;
int TERSE = 1;
int NORMAL = 2;
int VERBOSE = 3;
void setVerbose(int level);
int getVerbosity();
}
命名常量
方法声明
Extending Interfaces (接口的继承)
接口支持多亲继承,可以在关键字extends后面跟多个接口的列表,中间用逗号隔开,如:
public interface SerializableRunnable
extends , Runnable
{ ……}
子接口拥有所有父接口中声明的方法
子接口中的域将隐藏父接口中声明的同名域,被隐藏的父接口中的域必须通过父接口名访问
interface X{
int val=1;
}
interface Y extends X{
int val=2;
int sum=val+;
}
接口中的方法覆盖和重载
接口中的方法可以重载(Overload),可以声明方法名相同但签名不同的多个方法(包括父接口中的方法)
接口中的方法也可以覆盖(Override),但没有实际的意义,因为接口中不提供方法的实现
应注意接口的实现类对某个覆盖方法的实现是否能满足不同接口对该方法的语义要求
interface CardDealer{
void draw();
void deal();
void shuffle();
}
interface ponent{
void draw();
void draw(Device d);
void rotate(int degrees);
void fill(Color c);
}
interface GraphicalCardDealer
extends ponent, CardDealer{
……
}
Implementing Interfaces
要定义接口的实现类,需在类头中使用关键字implements,基本语法如下:
<修饰符> class <类名> implements <接口列表>
类可以实现多个接口,接口列表中各个接口名之间用逗号间隔
类必须提供接口中所有方法的实现,如果