[Java篇] java重载不是多态


多态意味着“多种形态”。在面向对象的编程当中,你有相同的’脸’(基类里一种通用的接口),以及使用该接口的不同的形式:即各种不同的动态绑定方法的版本。

如果没有理解数据抽象(封装)和继承,是不可能理解或者创建一个多态的例子,多态是一个不能被孤立看待的特征(但是像switch就可以),相反,在类的大的环境里面,多态作为一种很广泛的应用,人们经常被Java中其它非面向对象的特征所困扰,比如方法重载有时会被当作一个面向对象的特征,别被骗了,如果不是晚绑定,它就不是多态。

要想在程序中高效的使用多态及面向对象的技术,你必须将你的编程的视角不能仅限定在某一个类的成员和信息,还应该考虑到类与其他类之间通用的关系 ,虽然这个技术需要花费不少时间 ,但它是值得努力的,因为他可以更快的开发应用程序,能带来更好的代码组织,程序的可扩展性,以及更好的代码可维护性。

总之:方法重写是可以决定多态的,方法重载是决定不了多态的
所以在Java中,“多态体现在方法重载与方法重写”,这句话还正确么?

ps:早绑定:出现在编译期;晚绑定:出现在运行期.

来自:《Java In Thinking 3》

你可能感兴趣的:([Java篇] java重载不是多态)