Overriding или hiding?
Ходят слухи, что нельзя переопределять статические методы. Но компилятор не говорит об ошибках, когда видит следующий код:
public class A{
public static void theMethod(){
System.out.println("I am the A!");
}
}
public class B extends A{
public static void theMethod(){
System.out.println("I am the B!");
}
}
Код компилируется и работает без ошибок. Так в чем, собственно, прикол? Кто сказал, что нельзя переопределять статические методы? Практика показывает обратное!
( Не все так просто :) )
public class A{
public static void theMethod(){
System.out.println("I am the A!");
}
}
public class B extends A{
public static void theMethod(){
System.out.println("I am the B!");
}
}
Код компилируется и работает без ошибок. Так в чем, собственно, прикол? Кто сказал, что нельзя переопределять статические методы? Практика показывает обратное!
( Не все так просто :) )