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,这和动态绑定矛盾吗?
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,这和动态绑定矛盾吗?
解决方案 »
- 解释下java的求模运算~17.25%0.7=?
- 简单问题,如何用java得到一个目录下的所有文件名称??高分
- 文件通道最终将取代流操作?
- web 页面不包含二进制代码吗?
- 为什么调用了system.gc();,垃圾回收还是没有执行?
- 请教怎么在java中做成像csdn左边的导航栏呢?
- 若Applet用了accesscontroller.doPrivileged是不是可以访问任何系统资源,那java.security有何用?
- 在eclipse中如何建立多级的包目录
- 请大家给我看看这个程序问题在哪里?(原码—)
- JAVA能不能构建C里面的STRUCT ?
- java中swt设计
- 运行时不能正常显示中文
但如果在实际程序中,建议不要写子类中的这种重载方法,因为这种重载方法在参数是子类时,不同的编译器会有不同的实现,这在java规范里没有明确要求,如果 一定要这样写,要做到无论调用重载的哪个方法,其结果都是一样的才行