高级程序设计语言(Java版)6 接口与包.pptx.pptVIP

高级程序设计语言(Java版)6 接口与包.pptx.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级程序设计语言(Java版)6 接口与包.pptx

6.1 接口 6.2 包 6.3 习题 第4章中讲过,Java语言只支持单继承,也就是说在定义子类的时候,每个子类只允许有一个父类。但是,在开发中多继承是大量存在的,为了在Java语言中得到多继承的效果,提供了接口的概念。使用接口可以间接的实现多继承。接口的语法与类相似,它是Java语言封装性的另一种体现,属于复合数据类型。 看一个生活中的例子,现实世界中存在各种各样的动物,如:老虎、鱼、鸟、乌龟等,“动物”这两个字表示的只是能够运动、有生命个体的特性,但不能反映出无以计数的各种各样动物的具体情况,我们把上面提到的动物都看作不同的类,而这些类都继承了“动物”这个接口。 如图6-1生活中接口的继承: 动物 老虎 乌龟 鱼 鸟 看作接口 看作类 图6-1生活中接口的继承 6.1.1 接口的定义 接口的定义包括接口声明部分和接口体部分。定义接口的关键字是interface,一般格式如下: interface 接口名 [ extends父类接口名列表 ] { 接口体; } 接口的定义除了关键字以外和类相似,因为接口也是一中特殊的类,因此,接口也具有继承性。 【实例6-1】接口的定义: ? interface Sortable { // 定义一个接口 int Compare(Sortable s); } ? class Sort { // 定义一个排序类 public static void SelectSort(Sortable a[]) { int i, j, k; Sortable temp; ? for (i = 0; i a.length - 1; i++) { k = i; for (j = i + 1; j a.length; j++) { if(a[k].Compare(a[j])0) k = j; } temp = a[i]; a[i] = a[k]; a[k] = temp; } } } 6.1.2 接口的实现 【实例6-2】ImplementsTest1.java interface Animal{ int AGE = 4; void run(); } class Dog implements Animal{ //使用接口定义的常量赋值 int age = AGE; //实现接口中的抽象方法 public void run(){ System.out.println(age: +age); } } class Husky extends Dog{ //覆盖Dog中的方法 public void run(){ System.out.println(run); } } public class ImplementsTest1{ public static void main(String args[]){ Husky husky = new Husky(); //自动类型转换 makeRun(husky); Dog dog = new Dog(); makeRun(dog); } public static void makeRun(Animal animal){ animal.run(); } } ? 运行结果: run age: 4 6.1.4 比较接口和抽象类 接口和抽象类都位于继承树的上层,它们有很多相似之处。 首先,它们都不能被实例化。 其次,都代表了系统的抽象层。 除此之外,它们都包含抽象方法,这些抽象方法用于描述系统能提供哪些服务,但不提供具体的实现。 接口和抽象类的区别: 在接口中只能包含抽象方法,但是在抽象类中可以为部分方法提供默认的实现,这样就不必在子类中重复实现它们。 接口被公布,就必须非常稳定,因为随意在接口中添加抽象方法,会影响到所有的实现类。而抽象类不同,在抽象类中允许实现方法,因此可以扩展抽象类,不会对它的子类造成影响。 接口的好处在于,一个类可以实现多个接口,但是一个类只能继承一个直接的父类,这个父类可能是抽象类。 6.2.1 包的定义 “包”是由一组类和接口所组成的具有一定功能的集合。简单地说,是将一组功能相关的类和接口打包起来形成的整体,就是包。在Java语言中,包的使用可以使类的组织更加合理,避免类的名称冲突。而且,包具有一定的访问控制能力,可以从更上层的角度进行访问权限控制。 包的一般格式如下: ? package 包名; 6.2.2 Java中的包 Java系统为用户提供了很多常用的包,可以通过直接引用来使用这些包,下面是常用的包,如表6-1 Java中常用API包: API包 功

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档