内蒙古科技大学 教案 第五章接口与JavaAPI基础 本章学习重要目标: 学握接口的定义 掌握接口实现的方法 掌握面向接口编程的方法 §5.1引言 Java一单重继承 现实生活中存在多重语义的情况,需要多重继承实现,怎么解决这个问题?利用 接口来解决。 §5.2接口的定义 接口(interface)是一种与类相似的结构,只包含常量和抽象方法。接口在许多方 瓦杯议超的一精在 体幸常量声明 *方法签名 public interface PCI public void start() public void stop( Java接口中定义的方法在不同的地方被实现,可以具有不同的行为 class SoundCard implements PCI{ public void start( outprintln("Dudu.) public void stop() System.out.println("Sound stop!"). class NetworkCard implements PCI public void start() 第1页
内 蒙 古 科 技 大 学 教 案 第 1 页 第五章 接口与 Java API 基础 本章学习重要目标: 掌握接口的定义 掌握接口实现的方法 掌握面向接口编程的方法 §5.1 引言 Java—单重继承 现实生活中存在多重语义的情况,需要多重继承实现,怎么解决这个问题?利用 接口来解决。 §5.2 接口的定义 接口(interface)是一种与类相似的结构,只包含常量和抽象方法。接口在许多方 面都与抽象类很相似,但是它的目的是指明多个对象的共同行为特征。 Java 定义接口的语法: 修饰符 interface 接口名 { /** 常量声明 */ /** 方法签名 */ } public interface PCI { public void start(); public void stop(); } Java 接口中定义的方法在不同的地方被实现,可以具有不同的行为 class SoundCard implements PCI { public void start() { System.out.println("Du du."); } public void stop() { System.out.println("Sound stop!"); } } class NetworkCard implements PCI { public void start() {
内蒙古科技大学 教案 System.out.println("Send."): public void stop() System.out.println("Network stop!"): 可以使用ava接口标识类型,运行时,根据实际创建的对象类型调用相应的方法 PCI nc=new NetworkCard(); PCI sc=new SoundCard(); nc.start(): sc.start() 在Java中,接口被看作是一种特殊的类。就像常规类一样,每个接口都被编译为 独立的字节码文件。与抽象类相似,不能用new操作符创建接口的实例。 §5.3接口的声明 [public]interface接口名[extends父接口名列表]f ∥常量域声明 [public][static][final]域类型域名=常量值: ∥抽象方法声明 [public][abstract]返回值方法名(参数列表) 由于接口中所有的数据域都是public final static,.所有的方法都是publicabstract,. 所以Jaa允许忽 略这些修饰符 接口也具有继承性。定义一个接口时可以通过extends关键字声明该新接口是某个 己经存在的父接口的派生接口,它将继承父接口的所有属性和方法。 接口可以有一个以上的父接口,之间用逗号分隔,形成父接口列表。新接口将继 承所有父接口中的属性和方法。 如果需要实现多重继承的语义,用接口可以完成。Ja阳中一个类可以实现多个接 口。 §5.4接口的实现 接口定义的仅仅是实现某一特定功能的对外接口和规范,而并没有真正地实现这 个功 这个功前 的真叫 现是在 “继承”这个接口的各个类中完成的 要由这些类 来具体定义接口中各抽象方法的方法体。因而在Jva中,通常把对接口功能的“继承” 第2页
内 蒙 古 科 技 大 学 教 案 第 2 页 System.out.println("Send."); } public void stop() { System.out.println("Network stop!"); } } 可以使用 Java 接口标识类型,运行时,根据实际创建的对象类型调用相应的方法 public class Assembler { public static void main(String[] args) { PCI nc = new NetworkCard(); PCI sc = new SoundCard(); nc.start(); sc.start(); } } 在 Java 中,接口被看作是一种特殊的类。就像常规类一样,每个接口都被编译为 独立的字节码文件。与抽象类相似,不能用 new 操作符创建接口的实例。 §5.3 接口的声明 [public] interface 接口名 [extends 父接口名列表]{ // 常量域声明 [public][static][final] 域类型 域名 = 常量值; // 抽象方法声明 [public][abstract]返回值 方法名( 参数 列表 ) } 由于接口中所有的数据域都是 public final static,所有的方法都是 public abstract, 所以 Java 允许忽略这些修饰符。 接口也具有继承性。定义一个接口时可以通过 extends 关键字声明该新接口是某个 已经存在的父接口的派生接口,它将继承父接口的所有属性和方法。 接口可以有一个以上的父接口,之间用逗号分隔,形成父接口列表。新接口将继 承所有父接口中的属性和方法。 如果需要实现多重继承的语义,用接口可以完成。Java 中一个类可以实现多个接 口。 §5.4 接口的实现 接口定义的仅仅是实现某一特定功能的对外接口和规范,而并没有真正地实现这 个功能,这个功能的真正实现是在“继承”这个接口的各个类中完成的,要由这些类 来具体定义接口中各抽象方法的方法体。因而在 Java 中,通常把对接口功能的“继承
内蒙古科技大学 教 案 称为“实现”(implements)。类和接口之间的关系称为接口继承(interface eritance). 个类要实现接口时,请注意以下问愿: ①在类的声明部分,用implements关键字声明该类将要实现哪些接口。 ②在类的定义部分必须实现指定接口的所有抽象方法,即为所有抽象方法定义 方法体。 §5.5面向接口编程 面向接口编程是一条重要的编程原则。具体方法如下: 开发系统时,主体构架使用接口,接口构成系统的框架 这样就可以通过更换接口的实现类来更换系统的实现,从而提高了系统的可扩展 性及可维护性。 第3页
内 蒙 古 科 技 大 学 教 案 第 3 页 称为“实现”( implements )。 类和接口之间的关系称为接口继承(interface inheritance)。 一个类要实现接口时,请注意以下问题: ① 在类的声明部分,用 implements 关键字声明该类将要实现哪些接口。 ② 在类的定义部分必须实现指定接口的所有抽象方法,即为所有抽象方法定义 方法体。 §5.5 面向接口编程 面向接口编程是一条重要的编程原则。具体方法如下: 开发系统时,主体构架使用接口,接口构成系统的框架 这样就可以通过更换接口的实现类来更换系统的实现,从而提高了系统的可扩展 性及可维护性