class SuperClass {
public static void test() {
System.out.println(0);
}
public static void main(String[] args) {
SuperClass test = new SubClass();
test.test();
}
}
class SubClass extends SuperClass {
public static void test() {
System.out.println(1);
}
}
2 комментария:
Напечатает 0, но не понятно, почему :)
Вполне понятно: вызывается статический метод того типа, который объявлен у переменной, а не того, который у нее реально. Если написать "SubClass tests = new SubClass();", то выведется 1.
Отправить комментарий