Java放弃之旅(八)-Duo Tai

Tip:在面向对象的语言中,三种基本特征是:数据抽象、继承、多态。
为什么要使用到多态?
  1. 多态可以简化代码,能够刻意的模糊引用对象,让操作使用的更加方便。不管我们导出的是什么类,编写的代码只和基类打交道,就是多态的特点
  2. 方法调用中的绑定,绑定是指讲一个方法调用与方法主体关联起来。如果在程序执行前绑定叫做前期绑定(它是面向过程中默认的绑定方式,C中只有一种方法调用就是前期绑定),如果在程序运行时根据对象的类型进行绑定,就是动态绑定或运行时绑定,java中除了static与final(private属于final)声明的方法,其他都是动态绑定的。
  3. 可扩展性,可以从通用的基类继承出新的数据类型,增添新的功能,操纵基类接口的方法不需要任何改动就可以运用到新类。多态是一样让将改变的事物与未变的事物分离开重要技术。
什么是多态

      多态是向通过向上转型,同时也能准确调用转型前方法的一种技术,它实现了代码未变与改变的分离,更加贴合目前的开发方式,提供了极大的便利。

多态的缺陷
  1. “覆盖”私有方法。私有方法应该与公有方法采用不同的方法名称,避免在子类覆盖的时候,无法正确的调用子类的方法,转而调用了基类的私有方法,达不到预期。
  2. 静态方法无法多态。静态方法是与类关联而不是与对象关联,故无法进行多态。
子类的清理

      通常,子类的清理会被垃圾回收器进行处理,如果有清理的的需要,可以在基类中定义清理方法,并在子类中进行覆盖。在清理时需要注意清理的顺序,清理顺序应该按照声明的逆序进行。

在基类构造器中使用动态绑定的方法

      当在基类构造器中使用动态绑定的方法时,不会去调用基类本身的方法,而是会调用子类已经重新覆盖的方法。初始化的实际过程是:

  1. 在任何事物发生之前,将分配给对象的存储空间全部初始化为二进制的0;
  2. 调用基类的构造器;
  3. 按照声明的顺序调用成员的初始化方法;调用导出类的主体构造器;
协变返回类型

      在导出类的被覆盖方法可以返回基类方法返回的类型的导出类型 看不懂没用过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值