从零开始学Java9.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 多态 本章要介绍多态的概念和多态的用法。实际讲解时,仍然会围绕一个如何建立编程思路的问题,讲述如何使用多态。同时通过对大量程序实例的分析,让读者领会实际开发中如何实现类的多态。多态也是面向对象程序语言的核心知识。 10.1 多态的产生 程序员在开发过程中,需要在代码中编写很多函数方法。其实很多方法函数的形式差不多,例如,现实开发中可能会出现下列代码。(具体内容请参照本书) 10.2 多态的概念 多态就是拥有多种形态。在Java语言中,多态主要是拥有相同的形式,但不同的参数却实现不同的功能。这很像前面学习过的重载,下面先看一个实例。(具体内容请参照本书) 10.2.1 使用多态编写程序 为了作个比较,把上节中的实例使用多态的形式重新编写。(具体内容请参照本书) 10.2.2 覆盖的应用 通过下面一个实例,来学习覆盖的应用。(具体内容请参照本书) 10.2.3 重载与覆盖的实例对比 重载则是方法的参数不一样,如下列有关重载与覆盖比较的实例。(具体内容请参照本书) 10.2.4 覆盖的多态性 覆盖为什么也具有多态性?因为父类的方法在子类中被重写。多态就是拥有多种形态,子类和父类的方法名称相同,只不过完成的功能不一样,所以说覆盖也具有多态性。通过上面的讲述,读者应该对多态有了很清晰的了解,下面再看一个多态的实例,主要是针对对象型的数据。(具体内容请参照本书) 10.2.5 传值引用和传址引用 传值引用主要是针对基本数据类型而言。所谓传值引用就是在进行变量的传递过程中,传递的是变量实际的值,是一个新的拷贝,一个变量值不会影响另一个变量值的改变。(具体内容请参照本书) 10.3 通过实例熟悉多态用法 通过前面的几节描述,已经了解了多态的实质。本节将通过实例巩固其概念和用法,为以后实际开发奠定良好的基础。这个实例先构造一个类,然后让后面类继承前面的类,最后再将对象输出。先看这个实例的流程,如图10.1所示。(具体内容请参照本书) 10.4 绑定 所谓绑定,顾名思义就是将某个东西与另外一个东西捆绑在一起。在Java中,绑定就是对象方法的调用,准确的说,就是对象句柄与方法的绑定。绑定分为静态绑定和动态绑定。 10.4.1 静态绑定 当声明一个方法为“private”、“static”、“final”,或者声明一个构造器时,编译器清楚的知道是调用哪个方法,不存在与实际类型不匹配的现象,这就称为静态绑定。静态绑定不存在多态的问题。 10.4.2 动态绑定 动态绑定只用在程序运行的过程中,其会根据程序传递的参数不同,而调用不同的方法,这种绑定只有在程序运行期间才会发生,即动态绑定有着不确定性。动态绑定存在多态的问题。 10.5 超类 在讲述什么是父类的时候,提到父类又称为超类。本节将重点讲述超类,并详细介绍超类中使用频繁的方法“equals”。 10.5.1 什么是超类 Java程序语言是一门面向对象的程序设计语言,其类库中所有的类都从Object类中继承而来。即Object类是Java类库中所有类的父类,但在书写类的时候,通常不必这样写:(具体内容请参照本书) 10.5.2 equals方法的使用 equals方法在object类中,用于测试一个对象与另一个对象是否相等。对对象来说,判断两个对象是否指向同一个内存区域。其实也可以这样说,字符串处理中的“equals”方法覆盖了Object类中的“equals”方法。 (具体内容请参照本书) 10.5.3 通用编程 通用编程是什么意思呢?其实在前面讲述超类的时候,也向读者提起过,任何类型的实例都可以使用Object这个超类的变量来替代,因为Object类是所有类的父类。根据多态的原理,可以使用父类的类型代替子类,但是不能用子类的类型代替父类,因为父类中有的方法函数,子类中都有,而子类中的方法函数,父类中不一定都有。 10.6 常见疑难解答 (具体内容请参照本书) 10.6.1 动态和静态编译是什么 答:允许对对象进行不同的操作,但具体的操作却取决于对象的类型。 程序在编译的时候,什么函数对哪个对象执行什么操作都已经确定,换句话说叫做静态编译。多态是动态编译,动态编译就是在程序执行的过程中,根据不同对象类型有不同的绑定,其通过一个方法接口,实现多个不同的实现过程。这依赖于编译时编译器对同一个方法不同参数的识别。 10.6.2 绑定与多态的联系是什么 答:绑定(binding)(看起来到像一个音译词):将方法的调用连到方法本身被称为绑定。当绑定发生在程序运行之前,被称做前绑定(earlybinding),而在程序运行的时候,根据对象的类型来决定绑定方法被称为后绑定,也叫运行时绑定(run-time binding)或动态绑定(dynamic bindin

文档评论(0)

iris + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档