- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]《Java面向对象程序设计第2版》课件-06多态性
第六章 多 态 性 学习目标 理解多态性的概念 理解继承层次结构中对象间的关系 区分抽象类与具体类 抽象类和抽象方法的声明和使用 接口的声明和实现 final类和final方法 嵌套类的概念和使用 基本数据类型的包装类 6.1 多态性概念和实例 多态性(Polymorphism) 在超类中定义的属性或行为,被子类继承之后,可以具有不同的数据类型或表现出不同的行为。 这使得同一个属性或行为在超类及其各个子类中具有不同的语义。 6.1 多态性概念和实例 定义Shape s; s.draw(); //s调用draw()方法,s指向对象不同会画出不同的图形(圆或矩形或三角形) 多态性也是泛指在程序中同一个符号在不同的情况下具有不同解释的现象。 6.1 多态性概念和实例(续) 实现多态性的条件: 继承 抽象方法 引用 6.2 继承层次结构中对象间的关系 继承层次结构中的子类对象可以视为超类的对象,这样就可以将子类对象赋给超类变量。 然而,超类对象并不是其任何子类的对象,即不能将超类对象赋给子类引用。 6.2 继承层次结构中对象间的关系(续) 例如: Point3 point = new Point3( 30, 50 ); Circle4 circle = new Circle4( 120, 89, 2.7 ); Point3 pointRef = circle; (允许) Point3 pointRef=new Circle4(120,12,0) (允许) pointRef.toString(); //call Circle4.toString(); pointRef=point; pointRef.toString() //call Point.toString(); Circle circle= point; // 不允许,编译出错 6.2 继承层次结构中对象间的关系 (续) 强制类型转换 下列语句组是将point对象强制转换成Circle对象,circle. getX() 语句是正确的,而circle. getRadius()语句在运行时会产生错误。因为circle引用指向的point对象根本无getRadius方法。 Point3 point = new Point3( 30, 50 ); Circle circle=(Circle) point; circle. getX() ; circle. getRadius() ; //run-time error 例6-1中的例子举例说明了继承层次结构中对象间的关系。 例6-2 超类对象的引用赋给一个子类类型的变量 //HierarchyRelationshipTest2.java public class HierarchyRelationshipTest2 { public static void main( String[] args ) { Point3 point = new Point3( 30, 50 ); Circle3 circle; circle = point; //超类对象的引用赋给一个子类类型的变量,是不允许的。 } } 6.3 抽象类和抽象方法 6.3.1 抽象类和具体类的概念 6.3.2 抽象方法的声明 6.3.3 抽象类的声明 6.3.4 抽象类程序设计的举例 6.3.1 抽象类和具体类的概念 抽象类:每个抽象类中至少包含一个抽象方法。 抽象类只能作为继承层次结构中的超类,所以这些类称为抽象超类。不能实例化抽象类的对象。 抽象类的目的是提供一个合适的超类,以派生其他类。 具体类:用于实例化对象的类。这种类实现它们声明的所有方法。 抽象超类是一般类,它们仅仅指定子类的共同点,并不创建出真实的对象。 例如,如果我们要“绘制形状”,那我们将绘制什么形状呢?具体类为实例化对象提供了合理的细节。 6.3.2 抽象方法的声明 用关键字abstract声明抽象方法: public abstract void draw(); 抽象方法并不提供实现。包含抽象方法的类必须声明为抽象类。 抽象超类的所有具体子类都必须为超类的抽象方法提供具体实现。 6.3.3 抽象类的声明 使用关键字abstract声明抽象类。形如: public abstract class Shape {….} 抽象类通常包含一个或多个抽象方法 (静态方法不能为抽象方法)。 抽象超类不能实例化。但可以使用抽象超类来声明引用变量,用以保存抽象类所派生的任何具体类的对象。程序通常使用这种变量来多态地操作子类对象。 6.3.4 抽象类程序设
您可能关注的文档
- [工学]VB课件1.ppt
- [工学]VC++_Win32_API_编程简.ppt
- [工学]vb课后题答案.doc
- [工学]vc实现网络远程控制.doc
- [工学]vc第3章Windows编程基础.ppt
- [工学]VC语言_VCchap5_93.ppt
- [工学]vfp上机答案.doc
- [工学]VFP复习.ppt
- [工学]Verilog语言规则.ppt
- [工学]vb的学习.doc
- [工学]《C语言与程序设计》第二讲.ppt
- [工学]《Office2003三合一自动化办公教程》第2课:Word2003即学即会.ppt
- [工学]《ProENGINEERWildfire40工程零件设计实战教程》电子教案第1章.ppt
- [工学]《GSM原理及其网络优化》第1章.ppt
- [工学]《Protel99SE》复习.doc
- [工学]《SQLServer数据库应用技术实例教程》任务十一.ppt
- [工学]《UGNX4基础教程与上机指导》第6章:装配设计.ppt
- [工学]《专业英语》课件5-TheTransferFunctionandtheLaplaceTransformation.ppt
- [工学]《互换性与测量技术》试卷及答案.doc
- [工学]《互换性与技术测量》课件12.ppt
最近下载
- PSP 641U备用电源自投装置技术说明书_V2.01.pdf VIP
- 电机行业及市场研究分析报告.docx VIP
- 给排水专业图集-95S517排水管道出水口.pdf VIP
- 高校如何提升学生的创新精神和实践能力.pptx VIP
- jbt3837-2010变压器类产品型号编制方法.pdf VIP
- 二年级语文上册《我最喜爱的玩具》优秀范文20篇.pdf VIP
- 海康威视智慧工地解决方案-2022.pdf VIP
- CA6140车床维护与保养.doc VIP
- 智慧树《20世纪西方音乐》答案知到app章节测试答案.pdf VIP
- 3.3 系统设计的优化及实现 课件-高中通用技术苏教版(2019)必修《技术与设计2》.pptx VIP
有哪些信誉好的足球投注网站
文档评论(0)