多态,我们都在用啊!可是,你会不会觉得它烦?让我回答,考试的话,它就烦了!
class Base class SubClass extends Base public class Main |
上面的运行结果是什么?我得到的是:2 3。
晕!一个Base,一个SubClass。
其实和C#中的解释差不多:main函数中的a变量是Base行的,它引用的是Base类型,只不过是用SubClass的构造函数构造的而已。http://tb.blog.csdn.net/TrackBack.aspx?PostId=1334508
Java
中的函数,除了声明外
final
的外,都是后期绑定。
所谓绑定是建立“函数调用”和“函数本体”的关联。
所谓的后期绑定是指执行时根据对象类别而进行
多态仅仅对函数而言,不对变量而言;
变量的访问依赖于编译期引用指向的类型;
方法的访问依赖于执行期对象的类型;
这里发现Java在这个方面没有C#那么明确,很容易让人糊涂。