第七讲 接口与数据结构 北京理工大学计算机系金旭亮
接口与数据结构 北京理工大学计算机系 金旭亮 第七讲
本讲内容 ■接口与内部类 ■基本数据结构 021/2/24 北京理工大学计算机系(共38页)
2021/2/24 北京理工大学计算机系 (共38页) 2 本讲内容 接口与内部类 基本数据结构
第一部分接口与内部类
第一部分 接口与内部类
什么是接口(一) ■引例 鸭子是一种鸟,又是一种食物,如何在面 向对象的程序中表达这种关系? 021/2/24 北京理工大学计算机系(共38页)
2021/2/24 北京理工大学计算机系 (共38页) 4 什么是接口(一) 引例: 鸭子是一种鸟,又是一种食物,如何在面 向对象的程序中表达这种关系?
什么是接口?(二) public interface IFood i public void Cook(object o Public class duck implements FOod public void Cook(object o)i 021/2/24 北京理工大学计算机系(共38页)
2021/2/24 北京理工大学计算机系 (共38页) 5 什么是接口?(二) public interface IFood { public void Cook(Object o); } Public class Duck implements IFood{ public void Cook(Object o) { …… } …… }
使用接口 ■ fOod f= new duck0; ■格式: 接口类型的变量 neW实现了接口的子类类型(); 021/2/24 北京理工大学计算机系(共38页)
2021/2/24 北京理工大学计算机系 (共38页) 6 使用接口 IFood f=new Duck(); 格式: 接口类型的变量= new 实现了接口的子类类型();
接口的含义 ■所有实现本接口的 classes,看起来都应该 象这样 ■定义一个接口,采用关键字 "interface,实现 个接口,采用关键字 implements 021/2/24 北京理工大学计算机系(共38页)
2021/2/24 北京理工大学计算机系 (共38页) 7 接口的含义 “所有实现本接口的classes,看起来都应该 象这样……” 定义一个接口,采用关键字interface,实现 一个接口,采用关键字implements
接口的要点 ■接口的成员函数自动成为 public的,数据成 员自动成为 static和fnal的。 如果接口不声明为 public的,则自动变为 friendly,仅包内组件可以使用 021/2/24 北京理工大学计算机系(共38页)
2021/2/24 北京理工大学计算机系 (共38页) 8 接口的要点 接口的成员函数自动成为public的,数据成 员自动成为static和final的。 如果接口不声明为public的,则自动变为 friendly,仅包内组件可以使用
接口的特性 ■接口是一种抽象类,它的所有方法都是抽象 方法; ■接口的定义:用 interface取代Cass ■接口的实现:实现接口的类不从该接口的定 义中继承任何行为,在实现该接口的类的任 何对象中都能够调用它这个接口中定义的方 法,在实现的过程中,这个类还可以同时实 现其他接口 021/2/24 北京理工大学计算机系(共38页)
2021/2/24 北京理工大学计算机系 (共38页) 9 接口的特性 接口是一种抽象类,它的所有方法都是抽象 方法; 接口的定义:用interface取代Class 接口的实现: 实现接口的类不从该接口的定 义中继承任何行为,在实现该接口的类的任 何对象中都能够调用它这个接口中定义的方 法,在实现的过程中,这个类还可以同时实 现其他接口
接口多态 使用接口名称作为一个引用变量的类型 该引用变量可以用来指向任何实现了该接 口的类的实例。使用时将根据动态连接的 原则,视该变量所指向的具体实例进行操 作 ■这是多态特性的一个体现。(举例说明) 接口的使用是 Java oop的重要核心之一, 要好好理解和掌握 021/2/24 北京理工大学计算机系(共38页)
2021/2/24 北京理工大学计算机系 (共38页) 10 接口多态 使用接口名称作为一个引用变量的类型, 该引用变量可以用来指向任何实现了该接 口的类的实例。使用时将根据动态连接的 原则,视该变量所指向的具体实例进行操 作。 这是多态特性的一个体现。(举例说明) 接口的使用是Java OOP的重要核心之一, 要好好理解和掌握