java 多态

什么是多态

同一种类型的前提下允许一种类型表现出与其他类型之间的区别,这主要根据类的行为(方法的实现)不同而表现出来

1、能做到这一切的基础是:

a、java封装性(合并类的特征和行为创建新的数据类型)

b、java继承性(允许将对象当做自己的类型和基类型来处理这里为向上转型创造了条件)

c、java 可以向上转型

d、java可以动态绑定

2、多态带来的好处是:

(1)多态消除了类型之间的耦合关系

        多态分离了,做什么(接口)和怎么做(实现)

        使用向上转型,让所有导出类的接口都可以用基类来调用(类型的耦合关系解除)

(2)增加了程序的可扩展性

 可以通过操作基类来调用对象这也就不需要改动上层就可以产生新的数据类型

(3)增加了代码的可读性和结构性

3、java的方法调用绑定

方法绑定指将一个方法和方法调用和方法主体(方法体)绑定起来

前期绑定:编译器在连接程序时实现,主要是调用的方法都已经可以确定下来比如c语言

    和在java中用private 和 final 以及static声明的方法。这类型的方法不会被覆盖所以在调用的时期基本可以确定调用的方法体。

后期绑定:在程序运行时实现绑定,java向上转型时故意丢掉本身对象的类型来完成类型之间的解耦

    这样在通过基类来处理对象时编译阶段根本无法确定对象的实际类型,这也就无法确定该调用哪个对象的对应方法

    同时又让后期绑定成为了必要 

4、多态不适用的地方

    域与静态方法

    域的访问都是由编译器解析的,因此都不是多态的

    构造方法

    


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值