文档详情

面向对象-类继承与接口(一).doc

发布:2017-12-13约4.22千字共7页下载文档
文本预览下载声明
实验九 类继承与接口(一) 课程名称: 面向对象程序设计实验 实验项目名称: 实验九 类继承与接口 (一) 学生姓名: 专业: 学号 实验地点: 实验日期: 年 月 【实验目的】 1. 掌握Java类的继承特点,包括子类声明、对象创建等。 2. 掌握域的继承与隐藏的特点。 3. 掌握方法的继承与重写的特点。 【实验内容】 1. 执行类ConstructorChain, 请写出输出结果, 并分析出现该结果的原因。 提示:参考构造器链。 class ConstructorChain{ public static void main(String[] args){ new Son(); } } class Grandpa{ Grandpa(){ System.out.println(Grandpa); } } class Father extends Grandpa{ Father(){ System.out.println(father); } } class Son extends Father { Son(){ System.out.println(son); } } 运行结果: 分析继承链上各个类的构造器的调用次序:Grandpa()Father() Son() 分析是否是超类构造器调用在前: 先调用子类 (2)在命令行上键入java –verbose ConstructorChain, 并回车, 观察各个类的加载次序. 各个类的加载次序是: class Grandpa;class Fatherex tends Grandpa;class Son extends Father; 分析是否超类先加载:是 2.程序设计,把以下代码空缺处补齐 (1)类的继承 需求分析: 校务管理系统,设计类来描述系统中的两个角色:教师与学生 public class Teacher public class Student 抽取共性 public class Person 考虑在Person中设计教师与学生的公有域 已知部分代码设计如下 class Person { private String name; private String location; Person(){}; Person(String name){ this.name=name; location=hangzhou; } Person(String name,String location){ this.name=name; this.location=location; } public String info(){ return name: +name+ location: +location; } } class Teacher extends Person { int age;//增加年龄属性 Teacher(String name, int age){ super(name); this.age=age;//构造器体 } Teacher(String n, String l,int age){ super(n,l);//构造器体 this.age=age;//构造器体 } public String info(){ return super.info()+ age+age;//返回姓名:住所:以及年龄的信息 } } class Student extends Person { int age;//增加年龄属性 Student(String name, int age){ super(name); this.age=age;//构造器体 } Student(String n, String l,int age){ super(n,l);//构造器体 this.age=age;//构造器体 } public String info(){ return super.info()+ age+age;//返回姓名:住所:以及年龄的信息 } } public class test1{ public static void main(String args[]){ Teacher teacher1=
显示全部
相似文档