- 1、本文档共91页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch4_Java面向对象特性(阅读)
方法的参量和异类集合 1. 方法的参量 实际中,实例和变量并不总是属于同一类。 例 public TaxRate findTaxRateEmployee e // 进行计算并返回e的税率 // 而在应用程序类中可以写下面的语句 Manager m new Manager; …… TaxRate t findTaxRatem; 这是合法的,因为Manager是一个Employee。 2. 异类集合 异类集合是由不同质内容组成的集合。 在面向对象的语言中,可以创建有公共祖先类的任何元素的集合。 instanceof运算符 由于类的多态性,类的变量既可以指向本类实例,又可以指向其子类的实例。 可以通过instanceof运算符来判明一个引用到底指向哪个实例 。 instanceof运算符 假定继承关系如下所示: public class Employee extends Object public class Manager extends Employee public class Contractor extends Employee instanceof运算符 则类之间的层次关系如下图所示: Object Employee Manager Contractor 示例 public void methodEmployee e if e instanceof Manager // 经理级人士 else if e instanceof Contractor // 掌握公司机密的高层人士else // 普通雇员 转换对象 Java允许使用对象之父类类型的一个变量指示该对象。 下面的语句是合法的: Employee e new Manager; 使用变量e,可以只访问Employee对象的内容,而隐藏Manager对象中的特殊内容。 转换对象 对象引用的赋值兼容原则允许把子类的实例赋给父类的引用,但不能把父类的实例赋给子类的引用。 如果用instanceof运算符已判明父类的引用指向的是子类实例,就可以转换该引用,恢复对象的全部功能。 示例 public void methodEmployee e if e instanceof Manager Manager m Managere; System.out.printlnThis is the manager of +m.department; // 其他操作 转换对象 一般地,要替换对象引用时需做下列检查: 1 沿类层次向“上”转换总是合法的。实际上此种方式下不需要转换运算符,只用简单的赋值语句就可完成。 2 对于向“下”替换,只能是父类到子类转换,其他类之间是不允许的。 3 编译器检查正确后,需在运算时检查引用类型 覆盖方法 使用类的继承关系,可以从已有的类产生一个新类,修改父类中已有的方法。 如果子类中定义方法所用的名字、返回类型和参数表和父类中方法使用的完全一样,称子类方法覆盖了父类中的方法,即子类中的成员方法将隐藏父类中的同名方法。 覆盖方法 利用方法隐藏,可以重定义父类中的方法。 覆盖的同名方法中,子类方法不能比父类方法的访问权限更严格。 在子类中,若要使用父类中被隐藏的方法,可以使用super关键字。 示例 class Point void print System.out.printlnThis is the superclass!; public static void mainString args[] Point superp new Point ; superp.print; Point3d subp new Point3d; subp.print; class Point3d extends Point void print System.out.printlnThis is the subclass!; 示例 class Point1 void print System.out.printlnThis is the superclass!; public static void mainString args[] Point1 superp new Point1 ; superp.print; Point3d subp new Point3d; subp.print; class Point3d extends Point1 void print System.out.printlnThis is the subclass!; super.print; 示例 pub
您可能关注的文档
- ch3_数据链路层与局域网技术(阅读).ppt
- ch3_机械零件的强度(阅读).ppt
- CH3企业外部环境分析(阅读).ppt
- ch3信息系统项目的范围管理(阅读).ppt
- ch3力学基本定律与守恒律习题及答案.doc
- ch3原子结构与结合键.ppt
- ch3周期信号的傅里叶级数展开.doc
- ch3基坑土体稳定性分析(阅读).ppt
- ch3声和超声2009(阅读).ppt
- ch3外汇市场之概述.ppt
- 2025年天津市冷链物流基地配套道路建设可行性研究报告.docx
- 2025年天津市母婴护理会所专业化服务升级路径可行性研究报告.docx
- 2025年成都市私立医院医美抗衰中心创建可行性研究报告.docx
- 2025年成都市淡化海水在城市道路清洗领域的应用可行性研究报告.docx
- 2025年上海市环卫厨余垃圾生物处理技术应用可行性研究报告.docx
- 2025年天津市花西子针对户外运动妆容的可行性.docx
- 2025年上海市生物发电于秸秆炭化还田协同发电的可行性研究.docx
- 2025年天津市物造纸在可降解农用地膜领域的应用可行性研究报告.docx
- 2025年天津市无人值守充电站智能运维可行性研究报告.docx
- 2025年天津市竹荪种植连作障碍防治技术可行性研究报告.docx
文档评论(0)