多态在Java中的存在细节问题深度解析

2014-11-23 23:22:48 · 作者: · 浏览: 12

多态:事物的多种体现形态


父类的引用指向了自己的子类的对象。


前提:类与类之间有关系,要么继承或实现。


好处:提高了代码的扩展性


弊端:但是只能使用父类的引用指向子类和父类同样的方法。


类型转换:向上转型 向下转型


instanceof 用于判断对象是属于哪种类型。


多态(父类的引用指向子类对象)在代码中的特点(注意事项):


在多态中非静态成员函数的特点:


在编译时期: 参阅引用型变量所属类中是否有调用的方法。如果有,编译通过,否则编译失败。


在运行时期: 参阅对象所属的类中是否有调用的方法。


简单的总结:成员函数在多态调用时,编译看左边,运行看右边。


在多态中,非静态成员变量的特点:


无论编译和运行,都参考左边(引用型变量所属的类)


在多态中,静态成员变量/函数的特点:


无论编译和运行,都参照左边。


java对非静态方法的调用是采取动态绑定(运行时才判断)的方法,


对静态成员、属性的调用是采取静态绑定(编译时就判断)的方法。


---------------------示例代码----------------------------------------