- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 接口与内部类
第10章 接口与内部类 Java中不能实现多继承,但是Java可以通过接口来实现类似于多继承的方式。Java接口指定了任何实现接口的类必须具有的方法集。另外本章还讲述另外一个比较重要的概念内部类。 接口 内部类概念 匿名内部类 静态嵌套类 成员内部类 方法内部类 内部类的继承 10.1 接口 接口(interface)是抽象方法和常量值定义的集合。接口只包含常量和方法的定义,而没有实现变量和方法。接口本身是一种类型,因此,可以定义接口类型参数方法,并把代码应用于实现该接口的所有类中。理解接口的一种方式就是将接口视为抽象类,本节主要讲述接口的使用。 10.1.1 接口的概念 接口在某种意义上类似于特殊的抽象类。由于接口并不是类,不能创建接口对象,但可以创建,初始化实现该接口的任何类。接口不能包含实例域,也不能在接口中实现方法,但是可以在接口定义常量。 10.1.2 接口应用 接口是一种类型,因此可以用一个接口类型确定一种方法。接口具备了相当于父类的功能,但是它并不是父类。C++中允许一个类继承多个父类,但Java是不允许的,Java中一个子类只能有一个父类,但它可以同时实现多个接口。 10.1.3 抽象类实现接口 抽象类也可以实现接口,但是该接口只能给出部分方法的定义,在接口中没有定义的方法必须声明为抽象方法。下面是一个实现接口的抽象类举例。 // 程序10.3 Polygon.java 描述:定义抽象类Polygon public abstract class Polygon implements Shape{ protected int sidenumber; //声明整数类型数据域,表示多边形的边数 //设置多边形的边书 public void setSideNumber(int sn) { sidenumber = sn; //设置边数sidenumber的值 } //返回多边形的边数 public int getSideNumber() { return sidenumber; //返回边数sidenumber } public abstract double getArea(); //声明抽象方法getArea,用于子类计算面积 public abstract double getSideLong(); //声明抽象方法getSideLong,用于子类计算边长 } 10.1.4 派生接口 一个接口可以派生一个新的接口,该派生接口称之为扩展接口。其具体实现情况类似于派生于一个类,下面是一个派生接口的例子。 // 程序10.4 PolygonInterface.java 描述:Shape接口派生新的接口PolygonInterface public interface PolygonInterface extends Shape{ public void setSideNumber(int sn); //声明方法setSideNumber public int getSideNumber(); //声明方法getSideNumber } 10.1.5 Comparable接口 Arrays类中的sort方法可以对对象数组进行排序,但是对象所属的类必须实现Comparable接口。 Comparable接口是泛化类型,任何实现Comparable接口的类都需要包含compareTo方法。该方法的参数必须是一个Object对象,并返回一个整型数值。 10.1.6 Comparable接口应用 程序中的RectangleSort类实现接口Shape和Comparable。RectangleSort表示一个长方形的实现类,该类实现的compareTo方法可以按照指定规则比较大小RectangleSort对象的大小。 10.1.7 接口中定义常量 接口可以包含定义了的常量。一个类实现接口时,会自动获得定义的常量。 10.1.8 Cloneable接口 当拷贝一个变量时,原始变量与拷贝变量引用同一个对象,如果改变其中一个变量,所引用的对象会对另外一个变量的引用产生影响。如果需要创建一个对象的拷贝,拷贝的初始状态和原始变量一样,但这两个变量可以改变各自的变量值,就需要实现类的clone方法。首先要介绍两个比较重要的概念:浅拷贝和深拷贝。 10.1.9 Cloneable接口应用 下面举例实现浅拷贝和深拷贝功能。程序中定义了Audience类,其表示观众类。Audience类提供了观众名字、座位号、当前观众数量等域。 10.1.10 抽象类与接口区别 抽象类表示的是一种继承关系,而接口表示的是一种定义的契约关系; 一个类只能使用
文档评论(0)