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