欢迎来到天天文库
浏览记录
ID:47166110
大小:514.54 KB
页数:8页
时间:2019-08-15
《类继承与接口(四)实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、浙江大学城市学院实验报告课程名称:面向对象程序设计实验项目名称:类继承与接口(四)学生姓名:专业:学号:实验地点:实验日期:年月日【实验目的】1.巩固接口的相关知识2.理解接口回调技术3.掌握对象上转型与接口回调两种技术的相同之处和不同之处。【实验内容】一、对象的类型实验请运行以下程序的Test类,并回答问题。interfaceIA{}interfaceIB{}interfaceICextendsIA,IB{}classAimplementsIC{}classBextendsA{}publicclassTest{publicstaticvoidmain(Str
2、ing[]args){Bb=newB();System.out.println(binstanceofB);System.out.println(binstanceofA);System.out.println(binstanceofIC);System.out.println(binstanceofIA);System.out.println(binstanceofIB);System.out.println(binstanceofObject);}}(1)写出上述程序的运行结果。(1)分析上述运行结果?b所引用对象可以转型为哪些类型?B所引用的对象可以转型
3、为B,IA,A,IC,IB,Object(2)通过上述实验,您能得出什么结论?继承类的下端类可以自动向上转型或接口二、接口多重继承的成员歧义问题实验1.接口静态常量继承的歧义问题与解决请看下面的程序,然后回答问题。interfaceIA{publicstaticfinalintMAX=200;publicstaticfinalintMIN=100;}interfaceIB{publicstaticfinaldoubleMAX=1000;}interfaceICextendsIA,IB{publicabstractvoidc();}classAimplement
4、sIC{publicvoidc(){System.out.println(MAX);}}classBimplementsIA,IB{publicvoidd(){System.out.println(MAX);}}请回答以下问题:(1)上述程序的接口IC有没有错误?为什么?没出错,接口可以多重继承。(2)上述程序编译会不会出现错误?如果有错误,请说明,并改正错误。出错,因为A继承了IC又继承了IA,IB里面的MAX不能确定来自哪一个接口。classAimplementsIC{publicvoidc(){System.out.println(IA.MAX);}(3
5、)根据上述两个问题的分析,你可以得出什么结论?因为接口可以多重继承,所以在调用时要指明哪个接口2.接口抽象方法继承的歧义问题与解决请看下面的程序,然后回答问题。interfaceIA{publicabstractintc();publicabstractintc(intx);}interfaceIB{publicabstractvoidc();publicabstractintc(intx);publicabstractintc(doublex);}interfaceICextendsIA,IB{publicabstractintc(doublex);}abs
6、tractclassAimplementsIA,IB{}请回答以下问题:(1)接口IC从接口IA和IB中继承的抽象方法“intc(intx);”有没有歧义问题?没有,同名抽象方法会覆盖(2)上述程序的接口IC有没有错误?如果有错误,请说明,并改正错误。因为IC出现方法C的重定义,interfaceIB{publicabstractintc();publicabstractintc(intx);publicabstractintc(doublex);}(1)根据上述两个问题,你可以得出什么结论?结论是多重继承过程中,同名方法之间会存在覆盖和重载关系,并且不能出现
7、重定义现象。这与静态final域的重名是有所不同的。三、接口覆盖多态实验请看下面的程序,然后回答问题。interfaceIA{publicabstractvoidshow();}classAimplementsIA{publicvoidshow(){System.out.println("AAAA");}}classBimplementsIA{publicvoidshow(){System.out.println("BBBB");}}publicclassTest{publicstaticvoidmain(String[]args){IA[]a=newIA[4
8、];a[0]=newA();a[1]=
此文档下载收益归作者所有