类继承与接口(一)

上传人:wt****50 文档编号:34018472 上传时间:2018-02-20 格式:DOC 页数:6 大小:46.50KB
返回 下载 相关 举报
类继承与接口(一)_第1页
第1页 / 共6页
类继承与接口(一)_第2页
第2页 / 共6页
类继承与接口(一)_第3页
第3页 / 共6页
类继承与接口(一)_第4页
第4页 / 共6页
类继承与接口(一)_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《类继承与接口(一)》由会员分享,可在线阅读,更多相关《类继承与接口(一)(6页珍藏版)》请在金锄头文库上搜索。

1、实验 9 类继承与接口(一)一、 实验目的和要求 1. 掌握 Java 类的继承特点,包括子类声明、对象创建等。2. 掌握域的继承与隐藏的特点。3. 掌握方法的继承与重写的特点。二、 实验内容 1. 程序阅读与分析2. 程序填空:按照需求将代码空缺处补齐。3. 成员的访问权限三、 实验步骤1. 程序阅读与分析执行类 ConstructorChain, 请写出输出结果, 并分析出现该结果的原因。提示:参考构造方法链。class ConstructorChainpublic static void main(String args)new Son();class GrandpaGrandpa()S

2、ystem.out.println(Grandpa);class Father extends GrandpaFather()System.out.println(father);class Son extends Father Son()System.out.println(son);(1) 运行结果:(2) 分析继承链上各个类构造方法的调用次序:分析是否是超类构造方法调用在前: Son();Father();Grandpa();沿着继承链从子类开始一直到 object 为止(2)在命令行上键入 java verbose ConstructorChain, 并回车, 观察各个类的加载次序.各

3、个类的加载次序是:分析是否超类先加载:各个类的加载顺序依次是:class Grandpa-class Father extends Grandpa-class Son extends Father是,在加载某个类的时候,如果它的某个超类还没有被加载,那么必须首先加载这个超类;继承链上加载超类的顺序是:从 object 类开始知道当前类。就是继承链上接近 object 的超类,越优先被加载;默认情况下,同一个类仅需加载一次,既不会重复多次加载同一个类。2.程序填空。按照以下需求将代码空缺处补齐:类的继承 需求分析: 校务管理系统,设计类来描述系统中的两个角色:教师与学生 public class

4、 Teacher public class Student 抽取共性 public class Person 考虑在 Person 中设计教师与学生的公有域已知部分代码设计如下class Person* class Person* private String name;* private String location;* Person(String name)* this.name=name;* location=hangzhou;* * Person(String name,String location)* this.name=name;* this.location=location

5、;* * public String info()* return* name:+name+location: +location;* * class Teacher* class Teacher extends Person* /代码1增加年龄属性* Teacher(String name, int age)* /代码 2构造方法体* * Teacher(String n, String l,int age)* /代码 3构造方法体* /代码 4构造方法体* * public String info()* /代码5 返回姓名:住所:以及年龄的信息* * class Person privat

6、e 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()returnname: +name+ location: +location;class Teacher extends Person Int age;/代码 1增加年龄属性Teacher(String name,

7、int age)super(name);This.age=age;/代码 2构造方法体Teacher(String n, String l,int age)Super(n,1);/代码 3构造方法体This.age=age;/代码 4构造方法体public String info()Return super.info()+” age”+age;/代码 5返回姓名:住所:以及年龄的信息class Student extends Person Int age;/代码 1增加年龄属性Student(String name, int age)super(name);This.age=age;/代码 2

8、构造方法体Student(String n, String l,int age)Super(n,1);/代码 3构造方法体This.age=age;/代码 4构造方法体public String info()Return super.info()+” age”+age;/代码 5返回姓名:住所:以及年龄的信息public class Testpublic static void main(String args)Teacher teacher1=new Teacher(Mr Green,30);Student student1=new Student(John,18);Teacher teac

9、her2=new Teacher(Miss Red,North,25);Student student2=new Student(Marry,South,2);System.out.println(teacher1.info();System.out.println(student1.info();System.out.println(teacher2.info();System.out.println(student2.info();3 成员的访问权限将下面的两个程序 DefaultPkgFirst.java 和 DefaultPkgSecond.java 保存到某一目录下,比如 D:tes

10、tsources;然后回答问题。/DefaultPkgFirst.javapublic class DefaultPkgFirstpublic int i =100;protected int j = 200;private int k = 300;int m = 400;public void show1()System.out.println(AnonymousPkgFirst 类中的 show1()方法); protected void show2()System.out.println(AnonymousPkgFirst 类中的 show2()方法); private void sho

11、w3()System.out.println(AnonymousPkgFirst 类中的 show3()方法); void show4()System.out.println(AnonymousPkgFirst 类中的 show4()方法); /DefaultPkgSecond.javaclass DefaultPkgSecondpublic static void main(String args)DefaultPkgFirst a = new DefaultPkgFirst();System.out.println(a.i);/语句 1System.out.println(a.j);/语句

12、 2System.out.println(a.k);/语句 3System.out.println(a.m);/语句 4a.show1();/语句 5a.show2();/语句 6a.show3();/语句 7a.show4();/语句 8(1)DefaultPkgFirst 和 DefaultPkgSecond 这两个类都属于什么包?package test.sources(2)编译上面的 DefaultPkgFirst.java 和 DefaultPkgSecond.java,那么程序中的语句 1 到语句 8 是否编译出错, 如果出错,写明原因:语句 1 出错? 为何?不出错,同一个包里可

13、以继承费 private 成员语句 2 出错? 为何?不出错,同一个包里可以继承非 private 成员语句 3 出错? 为何?出错,同一个包里只能继承非 private 成员语句 4 出错? 为何?不出错,同一个包里可以继承非 private 成员语句 5 出错? 为何?不出错,同一个保利可以继承非 private 成员语句 6 出错? 为何?不出错,同一个包里可以继承非 private 成员语句 7 出错? 为何?出错,同一个包里只能继承非 private 成员语句 8 出错? 为何?不出错,同一个包里可以继承非 private 成员实验报告要求将编程题源程序、运行结果,以及实验中遇到的问题和解决问题的方法,写在实验报告上。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号