Подождите, я исправлен - статические методы унаследованы. Вроде, как бы, что-то вроде. Тем не менее, они не действуют как настоящее наследство ОО. Например, с этими классами:
public class Parent {
public static void printIt() {
System.out.println("I'm Parent!");
}
}
public class Child extends Parent {
public static void printIt() {
System.out.println("I'm Child!");
}
public static void main(String[] args) {
Parent child1 = new Child();
Child child2 = new Child();
child1.printIt();
child2.printIt();
}
}
Если вы позвоните child1.printIt()
, он будет использовать Parent.printIt()
, потому что child1 приведен к классу Parent
. Однако, если вы позвоните child2.printIt()
, он будет использовать Child.printIt()
, потому что он брошен на ребенка. Так что это не совсем истинное наследование, потому что переопределение не прилипнет, если вы приведете к супертипу. Таким образом, это не настоящий полиморфизм.