Java接口多态实验(修正版带实验答案).docVIP

Java接口多态实验(修正版带实验答案).doc

  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接口多态实验(修正版带实验答案)

实验9:接口、多态性 一、实验目的与要求 1、多态性的概念、技术基础 2、构造方法的调用顺序 3、总结接口的应用 二、内容概要 1、多态性概念 ? ? 是指不同类型的对象可以响应相同的消息。从相同的基类派生出来的多个类型可被当作同一种类型对待,可对这些不同的类型进行同样的处理,由于多态性,这些不同派生类对象响应同一方法时的行为是有所差别的 。 例如 Cat行为是吃鱼,Dog行为是吃骨头 所有的Object类的对象都响应toString()方法 2、多态性的技术基础 向上塑型技术:一个父类的引用变量可以指向不同的子类对象 动态绑定技术:运行时根据父类引用变量所指对象的实际类型执行相应的子类方法,从而实现多态性 3、多态性的好处 应用程序不必为每一个派生类(子类)编写功能调用,只要对基类(特别是抽象基类)或接口处理即可,“以不变应万变”,大大提高程序的可复用性。 例如:下面代码Waiter类中的callPersonEat方法参数是Person 类型,所以利用向上塑性技术可以给其传参数China和USA类型。而该方法体p.eat(); ,利用动态邦定技术运行时候根据p引用的具体对象调用创建对象时所属类的eat方法 interface Person{ public void eat(); } class China implements Person{ public void eat(){ System.out.println(chinese use chopsticks); } } class USA implements Person{ public void eat(){ System.out.println(usa use forks); } } class Waiter{ static void callPersonEat(Person p){ p.eat(); //实例方法调用,动态绑定 } public static void main(String a[]){ Person p1=new China();//向上塑性 Person p2=new USA();//向上塑性 Waiter.callPersonEat(p1); Waiter.callPersonEat(p2); /*Person p[]=new Person[2]; p[0]=new China(); p[1]=new USA(); for(int i=0;i2;i++) Waiter.callPersonEat(p[i]);*/ } } 例如,Ball类。代码如下,也是Java多态性的应用。 interface Ball{ void play(); } class FootBall implements Ball{ public void play(){ System.out.println(play football); } } class BasketBall implements Ball{ public void play(){ System.out.println(play BasketBall); } } class Player{ public static void playBall(Ball b){ b.play();//实例方法调用,动态绑定 } } class Tester{ public static void main(String args[]){ Ball b=new FootBall();//向上塑性 Player.playBall(b); Player.playBall(new FootBall());//实参给形参赋值,向上塑性 Player.playBall(new BasketBall());//实参给形参赋值,向上塑性 } } 构造方法的调用顺序 调用基类的构造方法。这个步骤会不断重复下去,首先得到构建的是分级结构的根部,然后是下一个派生类,等等。直到抵达最深一层的派生类 按声明顺序调用成员初始化模块 调用派生构造方法 三、实验内容 1、根据下图实际生活中 接口和实现接口的图示,定义出Java代码演示装机人员在主板上插入实现主板接口的各种卡。部分代码已经给出。PCI接口:表示主板接口协议;MainBoard类:主板类;NetWorkCard 类:网卡类,实现PCI接口;SoundCard:声卡类,实现PCI接口。 class MainBoard{ public void usePCICard(PCI p){ p.start(); p.stop(); } } class Assemb

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档