当前位置: 代码迷 >> Java相关 >> JAVA上传型对象?
  详细解决方案

JAVA上传型对象?

热度:473   发布时间:2007-10-05 08:59:24.0
JAVA上传型对象?

class A{
public void run(){}
}

class B extends A{
public void run(){
System.out.println("go,go,go");
}
}

public static void main(String args[]){
A a = new B();
a.run(); //为什么调用B的run方法
}

给讲一下原理可以吗?谢谢

搜索更多相关的解决方案: JAVA  对象  run  void  public  

----------------解决方案--------------------------------------------------------
动态绑定
----------------解决方案--------------------------------------------------------
是的啊,我知道是动态绑定的
但只是知道这样用

不知道它的原理

楼上这位朋友可以给分析一下它的原理吗.谢谢
----------------解决方案--------------------------------------------------------
动态绑定就是运行时绑定,因为a是用类B来创建的,所以给a开辟的地址空间是B对象的地址空间大小,也就是说对象a其实是类B的对象.而在B中的run()方法覆盖了A中的run()方法,所以a.run()就是调用类B的 run ()方法.
我是这么理解的.
----------------解决方案--------------------------------------------------------
上传型对象 继承或重写父类的方法
----------------解决方案--------------------------------------------------------
  相关解决方案