资源描述:
《实验九 类继承与接口(一)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验九类继承与接口(一)课程名称:面向对象程序设计实验实验项目名称:实验九类继承与接口(一)学生姓名:专业:学号:实验地点:实验日期:年月【实验目的】1.掌握Java类的继承特点,包括子类声明、对象创建等。2.掌握域的继承与隐藏的特点。3.掌握方法的继承与重写的特点。【实验内容】1.执行类ConstructorChain,请写出输出结果,并分析出现该结果的原因。提示:参考构造方法链。classConstructorChain{publicstaticvoidmain(String[]args){newSon();}}classGrandpa{Grandp
2、a(){System.out.println("Grandpa");}}classFatherextendsGrandpa{Father(){System.out.println("father");}}classSonextendsFather{Son(){System.out.println("son");}}(1)运行结果:GrandpaFatherson分析继承链上各个类构造方法的调用次序:Grandpa()->Father()->son-()>....->Object;分析是否是超类构造方法调用在前:调用子类前优先调用超类(2)在命令行上键入j
3、ava–verboseConstructorChain,并回车,观察各个类的加载次序.各个类的加载次序是:分析是否超类先加载:ClassGrandpa->classFather->classson2.程序设计,把以下代码空缺处补齐n(1)类的继承n需求分析:n校务管理系统,设计类来描述系统中的两个角色:教师与学生npublicclassTeachernpublicclassStudentn抽取共性npublicclassPersonn考虑在Person中设计教师与学生的公有域已知部分代码设计如下classPerson*classPerson*{priva
4、teStringname;*privateStringlocation;*Person(Stringname){*this.name=name;*location="hangzhou";*}*Person(Stringname,Stringlocation){*this.name=name;*this.location=location;*}*publicStringinfo(){*return*"name:"+name+"location:"+location;*}*}classTeacher*classTeacherextendsPerson*{//
5、[代码1]增加年龄属性*Teacher(Stringname,intage){*//[代码2]构造方法体*}*Teacher(Stringn,Stringl,intage){*//[代码3]构造方法体*//[代码4]构造方法体*}*publicStringinfo(){*//[代码5]返回姓名:住所:以及年龄的信息*}*}classPerson{privateStringname;privateStringlocation;Person(){};Person(Stringname){this.name=name;location="hangzhou";}
6、Person(Stringname,Stringlocation){this.name=name;this.location=location;}publicStringinfo(){return"name:"+name+"location:"+location;}}classTeacherextendsPerson{[代码1]增加年龄属性Teacher(Stringname,intage){super(name);[代码2]构造方法体}Teacher(Stringn,Stringl,intage){[代码3]构造方法体[代码4]构造方法体}public
7、Stringinfo(){[代码5]返回姓名:住所:以及年龄的信息}}classStudentextendsPerson{[代码1]增加年龄属性Student(Stringname,intage){super(name);[代码2]构造方法体}Student(Stringn,Stringl,intage){[代码3]构造方法体[代码4]构造方法体}publicStringinfo(){[代码5]返回姓名:住所:以及年龄的信息}}publicclassTest{publicstaticvoidmain(Stringargs[]){Teacherteache
8、r1=newTeacher("MrGreen",30);Studentstude