Вызов статических методов разрешается во время компиляции (без динамической отправки).
class main {
public static void main(String args[]) {
A a = new B();
B b = new B();
a.foo();
b.foo();
a.callMe();
b.callMe();
}
}
abstract class A {
public static void foo() {
System.out.println("I am superclass");
}
public void callMe() {
foo(); //no late binding here; always calls A.foo()
}
}
class B extends A {
public static void foo() {
System.out.println("I am subclass");
}
}
дает
I am superclass
I am subclass
I am superclass
I am superclass
Я бы настоятельно рекомендовал избегать Solr родитель / дочерние отношения. Мы решили использовать их в Solr 5.3.1, и оказалось, что, хотя большая часть функциональности присутствует, в Solr существует ряд неприятных ошибок, начиная с 4.x, которые остаются нефиксированными, включая
По этим причинам, если это вообще возможно, я настоятельно рекомендую ИЗБЕГАТЬ, используя дочерние документы. Даже если эти проблемы вас не коснутся сейчас, они будут решаться в будущем в какой-то момент, и ясно, что они не были исправлены в 3-4 основных версиях, что в продукте нет реальной поддержки для дочерних документов. Извините, что несу плохие новости, но, надеюсь, кто-то может извлечь уроки из нашего опыта.