Я читал во многих местах, что статический метод нельзя переопределить. Тем не менее, я написал образец запроса для тестирования, казалось, мой статический метод был переопределен.Java - статический метод override
Ниже мой запрос:
public class staticTestDriver{
public static void main(String[] args){
subClass.print(); //seems the print() method has been overridden
}
}
class superClass {
static void print(){
System.out.println("this is static");
}
}
class subClass extends superClass{
static void print(){
System.out.println("This is overridden");
}
}
Выход "это отменяется". Есть идеи?
Вы должны прочитать это http://stackoverflow.com/questions/2223386/why-doesnt-java-allow-overriding-of-static-methods – xsami
Это не главное. Это просто затенение. – SLaks
Это не переопределение, это [скрытие] (https://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.8.2). – RealSkeptic