JAVA基础学习篇----《thinking in java》第七章:多态性

方法调用的绑定:
将方法的调用连到方法本身被称为“绑定”。当绑定发生在程序运行之前时,被称作“前绑定”。
后绑定也称为“动态绑定”或“运行时绑定”,指程序运行的时候,根据对象的类型来决定该绑定哪个方法。如果语言实现了后绑定,那它就必须要有能在运行时判断对象类型,并且调用其合适方法的机制。也就是说编译器还是不知道对象的类型,但是方法的调用机制会找出,并且调用正确的方法。
除了static和final方法(private方法隐含有final的意思),java的所有的方法都采用后绑定。也就是说,通常情况下你不必考虑是不是应该采用后绑定--它是自动的。 为什么要声明final方法,上一章指出,这样可以禁止别人覆写这个方法,不过更重要的可能还是要“关闭”它的动态绑定,或者理确切的说,告诉编译器这里不需要使用后绑定。
shape为circle的基类,下面这句就是在“上传”:
Shape s = new Circle();
这里先创建了一个Circle对象,接着马上把它的引用赋给了Shape,看上去这像是一个错误(一种类型怎么能赋给另一种);但是由于Circle是由Shape派生出来的,Circle就是一种Shape,因此这种做法是非常正确的。假设你调用了一个基类的方法:s.draw();这里派生类里已经覆写了此方法,那么可能你会认为,这次应该总调用Shape的draw()了吧,因为毕竟这是Shape的引用,但是由于实现了后绑定(多态性),实际上它会调用Circle.draw().  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值