下载此文档

java面向对象程序设计课件.ppt


文档分类:IT计算机 | 页数:约30页 举报非法文档有奖
1/30
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/30 下载此文档
文档列表 文档介绍
第六章 (Polymorphism)是指在超类中定义的属性或行为,被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在超类及其各个子类中具有不同的语义。例如:定义一个几何图形类Shape,它具有“画图”行为,用draw()表示。但具体画什么图并不确定;定义Shape类的一些子类如Circle圆和Rectangle矩形。在子类中“画图”的具体行为可重新定义为:圆类中draw()画圆,矩形类中draw()画矩形。定义Shapes;s作为引用变量可指向Circle圆类的对象,也可指向Rectangle矩形类的对象。通过执行下面的代码:();//s调用draw()方法,s指向对象不同会画出不同的图形(圆或矩形)多态性也是泛指在程序中同一个符号在不同的情况下具有不同解释的现象。(续)实现多态性的条件:,这样就可以将子类对象赋给超类变量。尽管子类对象的类型不同,但这么做是允许的,因为每个子类对象就是超类的对象。然而,超类对象并不是其任何子类的对象,即不能将超类对象赋给子类引用。(续)例如Point3point=newPoint3(30,50);Circle4circle=newCircle4(120,89,);Point3pointRef=circle;(允许)Point3pointRef=newCircle4(120,12,0)(允许)();//();pointRef=point;()//();Circlecircle=point;//不允许,编译出错甥那钱泉疯泞盆终溅装沙巧报卖恼歉颈黑上愚肤烛鸳春佑涣帽肥鲸疽隋勤java面向对象程序设计课件java面向对象程序设计课件下列语句组是将point对象强制转换成Circle对象,()语句是正确的,()语句在运行时会产生错误。因为circle引用指向的point对象根本无getRadius方法。Circlecircle=(Circle)point;();();//run-timeerror例6-1中的例子举例说明了继承层次结构中对象间的关系。例6-(续)。抽象类只能作为继承层次结构中的超类,所以这些类称为抽象超类。不能实例化抽象类的对象。抽象类的目的是提供一个合适的超类,以派生其他类。用于实例化对象的类称为具体类。这种类实现它们声明的所有方法。抽象超类是一般类,它们仅仅指定子类的共同点,并不创建出真实的对象。在创建对象之前,我们需要更为专业化的类。例如,如果我们要“绘制形状”,那我们将绘制什么形状呢?具体类为实例化对象提供了合理的细节。

java面向对象程序设计课件 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数30
  • 收藏数0 收藏
  • 顶次数0
  • 上传人fy3986758
  • 文件大小69 KB
  • 时间2019-05-25
最近更新