标题: 抱歉,更正刚才的问题,理论依据和结果。thank u [打印本页] 作者: 赵宇 时间: 2012-9-19 14:15 标题: 抱歉,更正刚才的问题,理论依据和结果。thank u 本帖最后由 赵宇 于 2012-9-25 08:45 编辑
public class StaticTest3
{
public static void main(String[] args)
{
M m = new N();
m.output();
}
}
class M
{
public static void output()
{
System.out.println("M");
}
}
class N extends M
{
public static void output()
{
System.out.println("N");
}
} 作者: 尤圣回 时间: 2012-9-19 14:17
输出的是NM作者: 陈俊来 时间: 2012-9-19 14:24
输出的是M
M m = new N();
这是M对象,
调用的是m.output()调用的是M的方法,static类型的方法只能调用一次,所以,是M作者: 尤圣回 时间: 2012-9-19 14:24
输出的是Mclass N extends M
{
public static void output()
{
System.out.println("N");
} 因为继承父类 父类中的 静态方法在子类中是被禁用的 作者: 尤圣回 时间: 2012-9-19 14:25
输出的是M
class N extends M
{
public static void output()
{
System.out.println("N");
} 因为继承父类 父类中的 静态方法在子类中是被禁用的
作者: 赵宇 时间: 2012-9-19 14:27
吕书凯 发表于 2012-9-19 14:20
子类是不能重写父类的静态方法的
静态方法不是父类的,而是公共的。公共的东西子类不能重写
public class S ...
输出结果是M
你的解释。。。可不可能是这个因为M m = new N()原因呢?作者: 赵宇 时间: 2012-9-19 14:34