class XYZ{
public static void show(){
System.out.println("inside XYZ");
}
}
public class StaticTest extends XYZ {
public static void show() {
System.out.println("inside statictest");
}
public static void main(String args[]){
StaticTest st =new StaticTest();
StaticTest.show();
}
}
尽管我们知道静态方法不能被重写。那么到底发生了什么?
最佳答案
静态方法属于类。它们不能被覆盖。但是,如果在子类中定义了与父类静态方法具有相同签名的方法,则会隐藏父类方法。 StaticTest.show()
隐藏了 XYZ.show()
方法,因此 StaticTest.show()
是在代码中的 main
方法。
关于java - 静态方法重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6013574/