?5?????? Programming in JAVA 2 JAVA ????????? 接口? 塑型? 多态的概念? 多态的应用? 构造方法与多态? 内部类? 本章小结 3 JAVA ?????? ???接口–与抽象类一样都是定义多个类的共同属性–使抽象的概念更深入了一层,是一个“纯”抽象类,它只提供一种形式,并不提供实现–允许创建者规定方法的基本形式: 方法名、参数列表以及返回类型,但不规定方法主体–也可以包含基本数据类型的数据成员,但它们都默认为 static 和 final 4 JAVA ?????? ?????????接口的作用–是面向对象的一个重要机制–实现多继承,同时免除 C++ 中的多继承那样的复杂性–建立类和类之间的“协议”?把类根据其实现的功能来分别代表,而不必顾虑它所在的类继承层次;这样可以最大限度地利用动态绑定,隐藏实现细节?实现不同类之间的常量共享接口 5 JAVA ???????接口允许我们在看起来不相干的对象之间定义共同行为 ????????——???????接口 6 JAVA ???????保险公司的例子–具有车辆保险、人员保险、公司保险等多种保险业务, 在对外提供服务方面具有相似性,如都需要计算保险费( premium) 等,因此可声明一个 Insurable 接口–在 UML 图中,实现接口用带有空三角形的虚线表示 ????????——? 5_1 << Interface>> pany Person Car 接口 7 JAVA ???????接口的语法–声明格式为[接口修饰符] interface 接口名称 [ extends 父接口名]{…//方法的原型声明或静态常量}–接口的数据成员一定要赋初值,且此值将不能再更改,允许省略 final 关键字–接口中的方法必须是“抽象方法”,不能有方法体,允许省略 public 及 abstract 关键字 ????????接口 8 JAVA ???????例 中的 Insurable 接口声明如下, 可见其中的方法都是抽象方法 public interface Insurable { public int getNumber (); public int getCoverageAmount (); public double calculatePremium (); public Date getExpiryDate (); } ????????——? 5_1 ???????接口 9 JAVA ???????声明一个接口 Shape2D ,可利用它来实现二维的几何形状类 Circle 和 Rectangle –把计算面积的方法声明在接口里– pi值是常量,把它声明在接口的数据成员里 interface Shape2D{ // 声明 Shape2D 接口 final double pi=; // 数据成员一定要初始化 public abstract double area(); //抽象方法}–在接口的声明中,允许省略一些关键字,也可声明如下 interface Shape2D{ double pi=; double area(); } ????????——? 5_2 接口 10 JAVA ?????? ?????接口的实现–接口不能用 new 运算符直接产生对象,必须利用其特性设计新的类,再用新类来创建对象–利用接口设计类的过程,称为接口的实现,使用implements 关键字–语法如下 public class 类名称 implements 接口名称 { / *Bodies for the interface methods */ / * Own data and methods. */ } ?必须实现接口中的所有方法?来自接口的方法必须声明成 public 接口
java-课件【PPT演示稿】 来自淘豆网m.daumloan.com转载请标明出处.