В этом случае вы должны помнить, что в Java вы не можете переопределить статические методы. То, что случилось, это скрыть вещи.
в соответствии с кодом, который вы указали, если вы выполните следующие действия, ответ будет нулевым
Parent.ACONSTANT == null ; ==> true
Parent p = new Parent(); p.ACONSTANT == null ; ==> true
Parent c = new Child(); c.ACONSTANT == null ; ==> true
до тех пор, пока вы используете Parent в качестве ссылочного типа, ACONSTANT будет иметь значение null.
давайте сделаем что-то подобное.
Child c = new Child();
c.ACONSTANT = "Hi";
Parent p = c;
System.out.println(p.ACONSTANT);
Вывод будет нулевым.