首页 > 代码库 > Java多态小总结

Java多态小总结

多态,又可以称为动态绑定,即在运行时确定类型,比如:

 1 class A { 2   void draw(){ 3   //输出“A”    4  }   5 } 6 class B { 7     void draw(){ 8     //输出“B” 9 }10 11 }

这种关系里,如果调用A a = new B();

此时,被称为向上转型,a的类型可能在很早之前被生命,而在这时候被明确指明是其子类型,

我们如果要去调用draw()方法的时候,会调用输出“B”,这样,便是Java中的“多态”。我们称其为“向上转型”。

 

但是,如果B中还有其他方法的时候,A型的a是不能调用其方法的,必须将a通过强制类型转换转成B型才可以调用。我们称其为“向下转型”。

与此同时,如果是一个A a = new A();这种正常的实例化的时候,对其进行向下转型,在Eclipse中和编译是不报错的,但是程序运行起来后会报一个ClassCastException错误,这种在程序运行期间进行类型检查的机制称为“RTTI”(Runtime Type Identify,运行时类型识别)。