实验4 继承与接口(一).docx_第1页
实验4 继承与接口(一).docx_第2页
实验4 继承与接口(一).docx_第3页
实验4 继承与接口(一).docx_第4页
实验4 继承与接口(一).docx_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验4、继承与接口(一)1、 实验目的1. 子类的继承性2. 子类对象的创建过程3. 成员变量的继承与隐藏4. 方法的继承与重写 5. 掌握继承实现的各种限制。6. 掌握子类对象的实例化过程。7. 掌握方法重写的概念及实现。8. 了解Object及对Object类的主要方法进行重写。2、 实验内容及步骤1理解继承的含义任务一:学习继承实例 (1)内容及步骤步骤一:创建一个基本的学生类,源代码如下。public class Studentprotected String name; /具有保护修饰符的成员变量protected int id;void setdata(String name,int id) /设置数据的方法 =name;this.id= id;public void print() /输出数据的方法 System.out.println(name=+name+ ,+ id=+id);步骤二:编译Student.java,产生类文件Student.class。步骤三:创建继承的类通过Student 类产生子类ColStu,其不仅具有父类的成员变量,还定义了新成员变量xy(学院)、xi(系)。在程序中调用了父类的print 方法,同时可以看出子类也具有该方法。源代码如下:class ColStu extends Student protected String xy; protected String xi; public static void main(String args) Student p1 = new Student(); p1.setdata(帅零,12321) ; p1.print(); ColStu s1 = new ColStu() ; s1.setdata(郭丽娜,12345); /调用父类的成员方法 s1.xy=经济管理学院; /访问本类的成员变量 s1.xi=信息管理系; /访问本类的成员变量 s1.print(); System.out.println(name=++,+xy=+s1.xy+,+xi=+s1.xi); 步骤四:编译并运行程序。注意:公共类Student 与ColStu类要在同一文件夹(包)内。(1) 实验报告将运行结果写在实验报告中。思考:如果子类与父类不在同一包中子类会继承父类哪些变量和方法?任务二: 根据父类及以下描述编写子类。在Vehicle类的基础上创建一个Tractor(拖拉机)类,它不但拥有journey,wheelNum,loadNum,driveSpeed 四种属性和driveAt()方法,而且还拥有自己的plough(耕地)方法,在该方法中要求能够显示journey,wheelNum,loadNum三个属性的值,在应用程序中分别使用Tractor类的对象调用plough()和driveAt方法。public class Vehiclepublic float journey; public int wheelNum; public int loadNum; public int driveSpeed; public Vehicle()journey=100.3f;wheelNum=4;loadNum=1;public void driveAt(int speed)if (speed=60)System.out.println(行车速度太快,容易造成事故);/如果要求的车速太快,则机动车自动以40单位速度行驶driveSpeed=40;else System.out.println(你在安全行驶速度内行驶);driveSpeed=speed; 2、成员变量的隐藏和成员方法的覆盖任务一:学习实例变量的隐藏和方法的覆盖(1) 内容及步骤步骤一:创建父类class A int i,j; void setIJ(int a,int b) i=a; j=b; int multiply() return i*j; 步骤二:创建子类Bclass B extends A int i,k; /声明了一个和父类同名的变量i,隐藏了父类的i B(int a,int b) i=a; k=b; int multiply()/* 重写了父类的multiply()方法 */ return i*j*k; 步骤三:创建并运行应用程序。public class LX public static void main(String a) B subO=new B(6,9); subO.setIJ(7,8); int m=subO.multiply(); System.out.println(m = +m); 步骤四:编译运行程序。(2) 实验报告将运行结果写在实验报告中。思考:但通过子类对象subO调用setIJ的方法时,为变量i和j赋值时,i与j分别是属于谁的?父类?子类?分析获得此运行结果的原因。任务二:分析结果并验证(1)在以下程序中出现了成员隐藏,试分析程序运行的结果。(2)编译运行下面程序,验证分析的结果,掌握成员隐藏时属性的变化规则。 class Fatherint a=100;public void miner()a-;public class Son extends Father int a=0; public int getA()return super.a;public static void main(String arg)Father father=new Father();Son son=new Son();System.out.println(a of son is : +son.a);System.out.println(a of sons super is : +son.getA();son.miner();System.out.println(a of son is :+son.a);System.out.println(a of sons super is : +son.getA();(3) 实验报告将运行结果写在实验报告中。3、观察子类对象的实例化过程任务一:分析应用程序的运行结果,并上机验证。(1)源代码:class Person private String name; private int age; public Person() System.out.println(“父类Person中的构造方法。”); public String getName() return name;public void setAge(int age) this. age = age;public int getAge() return age;public void setName(String name) = name;class Student extends Personprivate String school;public Student() System.out.println(“子类Student中的构造方法。”);public String getSchool() return school;public void setSchool(String school) this.school = school;public class InstanceDemo public static void main(String args) Student stu = new Student(); stu.setName(“张三”); stu.setAge(30); stu.setSchool(“清华大学”); System.out.println(“姓名:”+stu.getName()+”,年龄:”+stu.getAge()+”,学校:”+stu.getSchool(); (2)实验报告将运行结果写在实验报告中,并解释获得此结果的原因。 4、方法的重写任务一:编译Student类,查看结果。(1) 源代码如下: class Personpublic void print() System.out.println(“Person-void print()”);class Student extends Personvoid print() System.out.println(“Student-void print()”);(2) 实验报告将Student类编译后提示怎样的信息?分析为什么会有这样的信息。4、Object类任务一:toString方法的理解。(1) 观察程序输出结果。源代码:class Demopublic class ObjectDemo1public static void main(String args) Demo d = new Demo();System.out.println(“不加toString()输出:”+d);System.out.println(“加toString()输出:”+d.toSting();(2)编译运行程序,观察结果。(3)实验报告将运行结果写在实验报告中。思考:为什么两次输出都是同样结果。 Demo有父类吗?任务二:根据对Object类的方法的学习及上例的理解,完成以下代码。(1) 源代码:class Person()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论