类的继承性与多态性

类的继承性与多态性

ID:27771579

大小:480.50 KB

页数:44页

时间:2018-12-03

类的继承性与多态性_第1页
类的继承性与多态性_第2页
类的继承性与多态性_第3页
类的继承性与多态性_第4页
类的继承性与多态性_第5页
资源描述:

《类的继承性与多态性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章类的继承性与多态性5.1类的继承5.2类的多态习题新类可从现有的类中产生,将保留现有类的状态属性和方法并可根据需要加以修改。新类还可添加新的状态属性和方法,这些新增功能允许以统一的风格处理不同类型的数据。这种现象就称为类的继承。5.1类的继承当建立一个新类时,不必写出全部成员变量和成员方法。只要简单地声明这个类是从一个已定义的类继承下来的,就可以引用被继承类的全部成员。被继承的类称为父类或超类(superclass),这个新类称为子类。Java提供了一个庞大的类库让开发人员继承和使用。通常要对子类进行扩展,即添加新的属性和方法。这使得子类要比父类大,但更具特殊性,代表着一组更具

2、体的对象。继承的意义就在于此。5.1.1父类和子类在类的声明语句中加入extends关键字和指定的类名即可实现类的继承,例如:publicclassMyAppletextendsjava.applet.AppletpublicclassMyApplicationextendsFramepublicclassMyApp1extendsObjectpublicclassMyApp2那么,类的继承是从什么地方开始的?又是如何延续下来的呢?请看图5.1所示的模拟图。图5.1反映了Java类的层次结构。最顶端的类是Object,它在java.lang中定义,是所有类的始祖。一个类可以有多

3、个子类,也可以没有子类,但它必定有一个父类(Object除外)。图5.1子类不能继承父类中的private成员,除此之外,其他所有的成员都可以通过继承变为子类的成员。另一方面,对继承的理解应该扩展到整个父类的分支,也就是说,子类继承的成员实际上是整个父系的所有成员。因此,可以得出如下结论:子类只能有一个父类。如果省略了extends,子类的父类是Object。子类继承了父类和祖先的成员,可以使用这些成员。在需要的时候,子类可以添加新的成员变量和方法,也可以隐藏父类的成员变量或覆盖父类的成员方法。1.成员变量的继承例5.1下面的3个程序说明从点Point类扩展到线Line类和圆Circ

4、le类的方法,这是3个公共类,不能放在同一个文件中。它们都没有输出语句,即使补上相应的main()使之运行也看不到什么结果。publicclassPoint{protectedintx,y;Point(inta,intb){setPoint(a,b);}publicvoidsetPoint(inta,intb){x=a;y=b;}publicintgetX(){returnx;}5.1.2成员变量的继承和隐藏publicintgetY(){returny;}}publicclassLineextendsPoint{protectedintx,y,endX,end

5、Y;Line(intx1,inty1,intx2,inty2){setLine(x1,y1,x2,y2);}publicvoidsetLine(intx1,inty1,intx2,inty2){x=x1;y=y1;endX=x2;endY=y2;}publicintgetX(){returnx;}publicintgetY(){returny;}publicintgetEndX(){returnendX;}publicintgetEndY(){returnendY;}publicdoublelength(){returnMath.sqrt((endX-x)*

6、(endX-x)+(endY-y)*(endY-y));}}publicclassCircleextendsPoint{protectedintradius;Circle(inta,intb,intr){super(a,b);setRadius(r);}publicvoidsetRadius(intr){radius=r;}publicintgetRadius(){returnradius;}publicdoublearea(){return3.14159*radius*radius;}}上例中,Point类具备一个点的特征。Line和Circle类具备线和圆

7、的特征,但它们都是从Point继承下来的。下面分析一下这3个类各自都有哪些成员。Point:x,y//受保护的成员变量,代表点的坐标Point//点的构造方法setPoint//设定点的坐标值的方法getX,getY//返回坐标x和y的值的方法Line:x,y,endX,endY//子类受保护的成员变量,代表线的两个端点坐标Line//线的构造方法setLine//设定线的两个端点坐标值的方法getX,getY//返回起点坐标x和y的值的方

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

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

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