class A{
public void fun(A obj)
{ System.out.println("fun a is called ");
}
}
class B extends A{
public  void fun(A obj)
{ System.out.println("A obj; fun b is called ");
}
public void fun(B obj)
{ System.out.println("B obj;fun b is called");
}
}
class C{
public static void main(String args[])
{ A obj=new B();
 obj.fun(obj);
}
}
大家给我分析下这个程序,结果为什么会是A obj; fun b is called ,而不是B obj;fun b is called,这和动态绑定矛盾吗?