多态机制

(一)程序绑定:

           静态绑定: java静态绑定主要是编译期绑定,主要是指被关键字final,static,private修饰的语句和构造方法。

           动态绑定:在运行期间判断对象的类型,并分别调用适当的方法。

   (二)子父类的成员情况

                Father f  = new Child();

     我们知道Java文件编译后,生成字节码文件。编译期主要检查语法,并不执行程序,并不会产生对象。 Java支持多态机制,所以上述等式编译可以通过。这时确定的 f 只是Father 的类型,与子类对象未发生关联。  当程序运行并且使用动态绑定调用方法时,虚拟机必须调用同 f 所指向的对象的实际类型相匹配的方法版本。 ① 如果能在声明类型中匹配到方法签名完全一样(参数类型一致)的方法,那么这个方法是最合适的。 ② 在第①条不能满足的情况下,通过将参数类型进行自动转型之后再进行匹配。如果匹配到多个自动转型后的方法签名M(A)和M(B),则用下面的标准来确定合适的方法:传递给M(A)方法的参数都可以传递给M(B),则f(A)最合适。反之M(B)最合适。 ③ 如果仍然在声明类型中找不到“合适”的方法,则编译阶段就无法通过。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值