(4) 实验四 继承与多态

(4) 实验四 继承与多态

ID:40722000

大小:59.50 KB

页数:4页

时间:2019-08-06

(4) 实验四 继承与多态_第1页
(4) 实验四 继承与多态_第2页
(4) 实验四 继承与多态_第3页
(4) 实验四 继承与多态_第4页
资源描述:

《(4) 实验四 继承与多态》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验四:继承与多态一、实验类型验证型二、实验目的1.理解继承的概念、机制、原理和作用,掌握Java中继承的方式和使用方法。2.在继承的基础上理解多态的概念,掌握Java中多态的实现方法。3.掌握成员变量的隐藏、方法重写和对象的向上转型三、实验内容(一)继承继承是一种使用已有类创建新类的机制,是面向对象编程的重要特征之一。继承的作用在于“重用”,继承产生的“子类”,可以“继承”原有的父类的代码(状态和行为),也可以很容易的扩展或改变代码。(1)类的继承Java语言使用extends关键字在两个类之间建立这种类似与父子血缘关系的“继承”关系:在定义类时,使用extends来指明它的父类。值

2、得注意的是,Java中的继承只能是单继承即单根继承。语法格式:classSubClassextensSuperClass{//只能有一个父类……}如果一个类没有显式指明父类,那么这个类默认是java.lang.Object类的子类。由于继承可以被向下传递(子类继承于父类的状态和行为,可以被子类的子类所“继承”),因此java中的所有类都直接或间接的是java.lang.Object类的子类。这样继承也使得类出现了层次关系,这种组织结构称为类的层次。实验1:编写一个Java程序,定义Person类以及该类的一个子类Student,满足以下UML类图的描述,并编写测试类TestClass,

3、尝试使用Student对象以继承的方式使用父类Person类的成员。Person-name:String+Person();+Person(name:String)+getName():String+voidsetName(name:String)Student-deparment:String+Student()+Student(department:String)+getDepartment():Stirng+voidsetDepartment(department:String)请给出源代码和运行结果,并回答如下问题:1)子类能否“继承”父类的所有成员么?(提示:构造、访问限制、

4、static、final)2)如果给Student创建一个子类GoodStudent类,这个类能否继承Person类,直接使用来自Person类的成员?(2)继承的实现Java中子类通过继承可以调用父类的成员,是通过创建父类对象的方式来实现的。即构建子类对象时,会创建一个父类对象来引用父类成员。默认的,子类会调用父类的无参的构造方法来构建父类对象并对父类对象的成员进行初始化,也可以通过super关键字类指明调用哪个父类构造。实验2:阅读、补全以下代码,并尝试运行,给出运行结果和分析。classA{privateintx;static{System.out.println(“static

5、statementfromA!”);}publicA(intx){(a)=x;System.out.println(“aAObjectisCreated!~”);}publicvoidfA(){System.out.println(“methodfA()fromclassA!”);System.out.println(“xis”+x);}}classBextendsA{privateintx;static{(b);//输出staticstatementfromB!}publicB(){(c);//调用B(int)构造方法。}publicB(intx){(d);//调用父类的构造方法,参

6、数为2*x;this.x=x;System.out.println(“aBObjectisCreated!~”);}publicvoidfB(){System.out.println(“methodfB()fromclassB!”);fA();System.out.println(“xis”+x);}}publicclassTest{publicstaticvoidmain(String[]args){Bb;System.out.println(“====类已加载完毕=====”);b=newB(10);b.fB();}}问题:1)请结合运行结果分析Java中创建对象过程。(分析类的不

7、同区域的运行前后次序,提示:类加载时或创建对象时,父类静态成员、实例成员、构造方法和子类静态成员、实例成员、构造方法的执行先后次序)2)什么时候需要使用super语句来显式调用父类构造?(一)多态多态是面向对象编程的重要技巧,它也是面向对象的重要特征之一。多态的本意是“同一个操作,不同的行为”,也就是使用同一个方法名,运行的实际是不同的方法。在Java语言中,多态主要通过方法的重载(Overloading)和重写(Overriding)实现。(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。