实验五继承性和多态性练习

实验五继承性和多态性练习

ID:39575963

大小:98.50 KB

页数:7页

时间:2019-07-06

实验五继承性和多态性练习_第1页
实验五继承性和多态性练习_第2页
实验五继承性和多态性练习_第3页
实验五继承性和多态性练习_第4页
实验五继承性和多态性练习_第5页
资源描述:

《实验五继承性和多态性练习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验五继承性和多态性练习【开发语言及实现平台或实验环境】Windows2000或XP,JDK1.6与Jcreator4.0【实验目的】1.了解类的继承性和多态性的作用。2.了解Java中接口(interface)的作用。3.掌握接口的设计方法。【实验要求】1.编写体现类的继承性(成员变量,成员方法,成员变量隐藏)的程序。2.编写体现类多态性(成员方法重载,构造方法重载)的程序。3.掌握使用系统接口的技术和创建自定义接口的方法。【实验步骤】一、类的继承性练习1.进一步理解继承的含义新类可从现有的类中产生,并保留现有类的成员变量和

2、方法并可根据需要对它们加以修改。新类还可添加新的变量和方法。这种现象就称为类的继承。当建立一个新类时,不必写出全部成员变量和成员方法。只要简单地声明这个类是从一个已定义的类继承下来的,就可以引用被继承类的全部成员。被继承的类称为父类或超类(superclass),这个新类称为子类。Java提供了一个庞大的类库让开发人员继承和使用。设计这些类是出于公用的目的,因此,很少有某个类恰恰满足你的需要。你必须设计自己的能处理实际问题的类,如果你设计的这个类仅仅实现了继承,则和父类毫无两样。所以,通常要对子类进行扩展,即添加新的属性和方法

3、。这使得子类要比父类大,但更具特殊性,代表着一组更具体的对象。继承的意义就在于此。2.创建公共类LX3_1_P(1)编写程序文件LX3_1_P.java,源代码如下。publicclassLX3_1_P{protectedStringxm;//具有保护修饰符的成员变量protectedintxh;voidsetdata(Stringm,inth)//设置数据的方法{xm=m;xh=h;}publicvoidprint()//输出数据的方法{System.out.println(xm+","+xh);}}(2)编译LX3_1_P

4、.java,产生类文件LX3_1_P.class。3.创建继承的类(1)程序功能:通过LX3_1_P类产生子类LX3_2,其不仅具有父类的成员变量xm(姓名)、xh(学号),还定义了新成员变量xy(学院)、xi(系)。在程序中调用了父类的print方法,同时可以看出子类也具有该方法。(2)编写LX3_2.java程序,源代码如下。classLX3_2extendsLX3_1_P{protectedStringxy;protectedStringxi;publicstaticvoidmain(Stringargs[]){LX3_

5、1_Pp1=newLX3_1_P();p1.setdata("帅零",12321);p1.print();LX3_2s1=newLX3_2();s1.setdata("郭丽娜",12345);//调用父类的成员方法s1.xy="经济管理学院";//访问本类的成员变量s1.xi="信息管理系";//访问本类的成员变量s1.print();System.out.print(s1.xm+","+s1.xy+","+s1.xi);}}(3)编译并运行程序,其结果如图5.1所示。图5.13.了解成员变量的隐藏方式所谓隐藏是指子类重新定义

6、了父类中的同名变量,在子类Line中重新定义了x为x1,y为y1,隐藏了父类Point中的两个成员变量x和y。子类执行自己的方法时,操作的是子类的变量,子类执行父类的方法时,操作的是父类的变量。在子类中要特别注意成员变量的命名,防止无意中隐藏了父类的关键成员变量,这有可能给程序带来麻烦。4.了解成员方法的覆盖方式(1)方法覆盖的定义与作用通过继承子类可以继承父类中所有可以被子类访问的成员方法,但如果子类的方法与父类方法同名,则不能继承,此时称子类的方法覆盖了父类的方法,简称为方法覆盖(override)。方法覆盖为子类提供了修

7、改父类成员方法的能力。例如,子类可以修改层层继承下来的Object根类的toString方法,让它输出一些更有用的信息。下面的程序显示了在子类Circle中添加toString方法,用来返回圆半径和圆面积信息。(2)编写覆盖Object类toString方法的程序文件LX3_3.java,源代码如下。classCircle{privateintradius;Circle(intr){setRadius(r);}publicvoidsetRadius(intr){radius=r;}publicintgetRadius(){re

8、turnradius;}publicdoublearea(){return3.14159*radius*radius;}publicStringtoString(){return"圆半径:"+getRadius()+"圆面积:"+area();}}publicclassLX3

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

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

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