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