向上转型和动态绑定机制

什么是向上转型?

向上转型又被叫做自动转型、隐式转型。向上转型简单来说就是父类引用指向子类实例,也被叫做子类的对象赋给父类的对象。
如:

People boy = new Boy();// 当前Boy类是People类的子类

注:我们说向上转型是安全的。这是因为任何的子类都继承并且接受了父类的方法。在例子中我们也能发现并且理解,所有的男孩子都属于男人的父类(人类),这是可行的,但是我们遇到向下转型的时候就不行了。若说所有的人类都是男人即不成立。(向下转型即为强制类型转换)

向上转型的应用

1)当一个子类的对象向上转型为父类之后,就被当作了父类的对象。所能调用的方法就会减少,只能调用子类重写了父类的方法以及父类派生的方法。而并不能调用子类独有的方法。
2)父类中的静态方法也是不能被子类重写的。

扩展

多态的实现可以通过向上转型和动态绑定机制来完成,向上转型实现了将子类对象向上转型为父类类型,而动态绑定机制能够识别处对象转型前的类型,从而自动调用该类的方法。

动态绑定

绑定就是将一个方法调用到另外的一个方法所在的类连接到一起就是绑定,绑定也分为动态绑定和静态绑定。
静态绑定:在程序运行之前就进行绑定(由编译器和链接程序完成的),也被叫做前期绑定。
动态绑定:在程序运行期间由JVM根据对象的类型自动的判断应该调用哪一个方法,也被叫做后期绑定。
动态绑定和应用面很广泛,类似于抽奖程序中,我们都可以应用到动态绑定的效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章