Я думаю, что ваш пример кода неполон, потому что я подозреваю, что вы спрашиваете, что если метод d.equals()
использует a.equals()
, то какая версия метода equals()
вызывается?
Если это то, что вы спрашиваете, тогда ответом будет equals()
метод типа a
. Если a
является B
, то будет вызываться B.equals()
. Если a
является C
, то вызывается C.equals()
. Это верно независимо от того, имеет ли A
собственную реализацию метода equals()
или нет.
Поскольку вы упомянули Hibernate, я полагаю, вы пытаетесь создать сопоставление объединенного подкласса или что-то подобное. Если вы отобразите его правильно, то Hibernate не будет пытаться создать экземпляр A
напрямую, который в любом случае должен быть абстрактным, так как вы это описали.