接口、多态与内部类(广东技术师范学院java第四章).doc_第1页
接口、多态与内部类(广东技术师范学院java第四章).doc_第2页
接口、多态与内部类(广东技术师范学院java第四章).doc_第3页
接口、多态与内部类(广东技术师范学院java第四章).doc_第4页
接口、多态与内部类(广东技术师范学院java第四章).doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广东技术师范学院实验报告学院:专业:班级:成绩:姓名:学号:组别:组员:实验地点:实验日期:指导教师签名:预习情况操作情况考勤情况数据处理情况实验五 接口、多态与内部类1、 实验项目1 理解接口、塑型、多态的概念并能熟练应用;2 熟练掌握接口的定义和使用;3 深刻理解构造方法的调用顺序,理解编写时需要注意的问题;4 了解并学会使用内部类2、 实验过程1. 继承时的多态:目测给出下面代码的执行输出结果,并简单解释每一行输出的原因。目测输出结果为:A new Vehicle /Vehicle v=new Vehicle(); v.test();A new Vehicle /Vehicle vc=new Car();A new car /类car()中System.out.println(A new car);A new Vehicle /Bus vb=new Bus();A new Bus /类bus()中System.out.println(A new Bus);Vehicle is driven /类vehicle()中drive()Car is driven /类car()中vc.drive()Bus is driven /类bus()vb.drive()Vehicle is braked /Vehicle is braked /子类bus()中没有自定义brake,所以继承父类Vehicle()中的brake()对于test()中的vc.brake(); vb.brake();2.针对下面的简单的类图,从面向对象的角度,将Instrument定义成接口,应怎样实现。编写能完成如图功能的程序,并再编写一个简单的应用程序进行多态性测试。(参考例子5-9;实验4该题是要求用抽象类来实现,在此要求用接口实现,还要进行多态性测试)说明:Instrument表示乐器、Wind表示管乐器、Percussion敲击乐器、Stringed表示弦乐器、Woodwind表示木管乐器、Brass表示铜管乐器。要求:(1)Instrument为接口,Wind为抽象类,其他为普通类。这里测试的目的是:我们知道当一个普通类实现一个接口时,必须实现该接口的全部方法,但当这个类是抽象类时,我们还需要实现该接口全部方法吗?如果不需要实现?那么是否直接不理这个方法就一,还是要将这个方法在自己类内部再标记一次为抽象方法。(2)请编写测试代码,对实现Instrument接口的各个类进行多态测试,具体可参考课本例子。所谓多态测试就是向上自动塑型,以及向下动态绑定,而动态绑定的基本规则是实例方法“由下往上”寻找绑定,类方法和类属性成员“由上往下”寻找绑定。3编写程序,要求如下:(1)定义Biology(生物)、Animal(动物)和Mankind(人)3个接口;(2)接口Biology声明breath()抽象方法;(3)接口Animal继承Biology并声明move()和eat()抽象方法;(4)接口Mankind继承Animal并声明study()和think()抽象方法,增加属性MaxAge;(5)定义类Man和Woman实现接口Mankind,实现它们声明的抽象方法,并增加属性,name,sex(类属性成员)和age;(具体实现可以只显示相应的提示信息就可以,如同书本例子一样);(6)在类Man和Woman中实现无参构造方法和有参构造方法两种不同的构造方法,有参构造方法输入自己姓名,自己年龄,在构造方法中如果年龄超出MaxAge则输出出错信息并修改成默认年龄。(7)编写测试类使用接口Mankind来测试类Man和Woman的多态性。(向上塑型和向下动态绑定)提示:(1)首先画好UML类关系图,这样编程时把握各种类之间关系就不会出错;(2)在Man类和Woman中需要实现所有的抽象方法;(3)在Boy和Girl类中的无参构造方法可以直接调用其有参构造方法。UML类关系图如下代码截图如下4. 在第4章课后习题10的基础上,声明测试类完成对多态性的测试(1) 在主方法中声明Student类的数组(含5个元素);(2) 生成5个对象存入数组:其中3个Student类的对象,1个StudentXW类的对象,1个StudentBZ类的对象;(3) 将方法testScore()发送给数组的每一个元素,输出结果,并分析具体执行的是哪一个类中的方法(课本171页第5章课后习题8)。5、内部类:定义一个类Outer,类中拥有私有成员变量a和成员方法output( )。在这个类中定义一个内部类Inner,内部类中定义一个方法out( )修改外部类的成员变量a的值,并调用外部类的私有方法output( )。最后在外部类的公有静态main方法中调用内部类的方法。要求:测试使用两种方式来调用内部类方法,第一种,在外部类方法里面创建内部类对象,在main方法里面通过调用外部类的方法来间接调用内部类方法;第二种,在main方法里面直接创建内部类对象,直接调用内部类方法第一种方法:第2种方法:三、实验结果四、分析与讨论1抽象类是不能被实例化的类,具体参考http:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论