十九Java的接口及实例.docxVIP

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

?十九、Java的接口及实例????一、定义Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。?接口定义的一般形式为:[访问控制符]interface 接口名 {类型标识符final 符号常量名n = 常数;返回值类型? 方法名([参数列表]);????? …}?二、接口的特点1、Java接口中的成员变量默认都是public,static,final类型的(都可省略),必须被显示初始化,即接口中的成员变量为常量(大写,单词之间用_分隔)2、Java接口中的方法默认都是public,abstract类型的(都可省略),没有方法体,不能被实例化3、Java接口中只能包含public,static,final类型的成员变量和public,abstract类型的成员方法4、接口中没有构造方法,不能被实例化5、一个接口不能实现(implements)另一个接口,但它可以继承多个其它的接口6、Java接口必须通过类来实现它的抽象方法7、当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类8、不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例9、一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承.?三、接口的用法1、精简程序结构,免除重复定义比如,有两个及上的的类拥有相同的方法,但是实现功能不一样,就可以定义一个接口,将这个方法提炼出来,在需要使用该方法的类中去实现,就免除了多个类定义系统方法的麻烦。举例:鸟类和昆虫类都具有飞行的功能,这个功能是相同的,但是其它功能是不同的,在程序实现的过程中,就可以定义一个接口,专门描述飞行。下图是分别定义鸟类和昆虫类,其都有飞行的方法。????????? 下图定义了接口,其类图如下:?实现代码如下:[java]?view plaincopyinterface???Flyanimal{????????void?fly();??}??class???Insect?{????????int??legnum=6;??}??class??Bird?{???????int??legnum=2;????void?egg(){};??}??class?Ant?extendsInsect?implements??Flyanimal?{?????public?void?fly(){?????????System.out.println(Ant?can??fly);?????}??}??classPigeon??extends?Bird?implements??Flyanimal?{?????public?void?fly(){?????????System.out.println(pigeon??can?fly);?????}?????public?void?egg(){?????????System.out.println(pigeon??can?lay??eggs?);?????}??}??public?classInterfaceDemo{?????public?static?void?main(String?args[]){???????Ant?a=new?Ant();???????a.fly();???????System.out.println(Ants?legs?are+?a.legnum);???????Pigeon?p=?new?Pigeon();??????p.fly();???????p.egg();????}??}???程序运行结果:Ant can? flyAntslegs? are?6pigeon? can?flypigeon? can?lay? eggs??二、拓展程序功能,应对需求变化。???????? 假设一个学校接待方面的程序,招待不同身份的人的食宿问题,其对应规则如下:身份食宿学生食堂宿舍教师教师食堂学校公寓学生家长招待所招待所理论上,当然可以对每个不同身份的人各定义一个对应的类,并实现各自的方法,但是观察这写类,可以归纳出其有一个共同的模板,即“人”的“食、宿”问题。这时候,就可以发挥接口的功能了。实现代码如下:[java]?view plaincopyinterfacePerson{??????void?eat();??????void?sleep();??}?????class?Studentimplements?Person{??????public?void?eat(){?????????System.out.println(学生

文档评论(0)

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

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

1亿VIP精品文档

相关文档