day06-多态.pdfVIP

  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文档。上传文档
查看更多
day06-多态

面向对象特性之三:多态 1、抽象 抽象:笼统,模糊,看不懂的,不具体 特点:方法只有申明没有实现时,该方法就是抽象方法,需要被 abstract 修饰,抽象方法必须定义在抽象类中,该类必须也被 abstract 修饰 抽象类不可以被实例化,为什么?因为调用抽象方法没有意义。 抽象类必须有其子类覆盖了所有的抽象方法后,该子类才可以实例 化,否则,这个子类还是抽象类。 抽象类有构造函数吗? 有,给子类对象进行初始化。 抽象类可以不定义抽象方法吗? 可以的,但是很少见,目的就是不让该类创建对象,awt 的适配器就是 这种类。一个抽象类现实一个接口,那个他的子类,可以直接匿名对象, 覆盖自己想要的方法,而不是重写所以的方法,通常这个类中的方法有方 法体,但是却没有内容。不需要外界创建对象。 抽象关键字不可以和那些关键字共享 private 不行外界不知道,与 abstract 相反 static不行抽象的方法没有方法体,调用无意义 final不行最终不能被继承,不能被覆盖。 2、抽象类和一般类的异同点 都是描述事物的,都在内部定义了成员, 一般类描述事物的信息完全,抽象类描述的信息不足 一般类中不能定义抽象方法,只能定义非抽象方法,抽象类二者皆可 一般类可以实例化,而抽象类不行。 抽象类一定是一个父类吗?必须的,因为需要子类覆盖其方法后,才 能实例化。 3、接口 当一个抽象类中的方法都是抽象的时候,这个时候可以将该类抽象用 另一种形式定义和表示,就是 接口,定义接口使用的关键字不是 class,是 Interface。 对于接口当中常见的成员:而且这些成员都是固定的修饰符 全局常量 publicstaticfinal 抽象方法 publicabstract 由此得出结论,接口中的成员都是公有的权限 类与类之间是继承关系,类与接口直接是实现关系 接口不可以被实例化 只能由实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类 才可以实例化,否则,这个子类就是一个抽象类。 在 JAVA 中不直接支持多继承,因为会出现调用的不确定性,所以 java 将多继承机制进行改良,在 java 中变成了多现实。 一个类可以实现多个接口。接口的出现避免了单继承的局限性,接口 与接口之间是继承关系。接口不能继承抽象类,因为抽象类中可能有 不抽象的方法。 4、接口与抽象类的区别 都是不断向上抽取而来的 抽象类需要被继承,接口需要被现实,而且可以多实现, 抽象类中可以定义抽象方法和非抽象方法,子类继承后,(前提子类必须 重写了抽象类的抽象方法)可以直接使用非抽象方法,接口中只能定义抽 象方法,必须由子类去实现, 抽象类的继承是 is a 关系,在定义该体系的基本共性内容, 接口的实现是 like a 关系,在定义体系中的额外功能。 例如犬按功能分:有导盲犬,搜爆犬。 abstractclass犬 {abstractvoid吼叫();} interface导盲 {abstractvoid导盲();} class导盲犬extends犬implements导盲 { publicvoid吼叫(){ 代码块…..} publicvoid导盲(){ 代码块…..} } 就像狗都具有吼叫的功能,但是导盲和搜爆是某些狗所具有的。在 不同的领域中,有不同的分析方式, 5、多态的特点 应用程序不必为每一个子类编写功能调用,只需要对父类进行处理即 可。这一招叫“以不变应万变”,可以大大提高程序的可复用性。子类的功能 可以被父类的变量调用,这叫向后兼容,可以提高程序的可扩充性和可维 护性。现在写的程序可以调用将来写的程序不足为奇 例如,猫这类事物即具备猫的形态,又具备着动物的形态,这就是对 象的多态性。简单说:就是一个对象对应着不同类型。

文档评论(0)

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

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

1亿VIP精品文档

相关文档