为什么下面的代码打印“Main”?
public class Main
{
public static void method()
{
System.out.println("Main");
}
public static void main(String[] args)
{
Main m = new SubMain();
m.method();
}
}
class SubMain extends Main
{
public static void method()
{
System.out.println("SubMain");
}
}
在运行时,m
指向一个实例Submain
,所以它应该在概念上打印“SubMain”。
静态方法根据变量的编译时类型进行解析。m
属于类型Main
,所以方法中Main
叫做。
如果你把它改成SubMain m ...
,然后方法SubMain
将被调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)