Hi the fact that hasHorns() method is private means that it's not visible outside Deer Class and it's not been inherited thus the ReinDeer's version is a regular method that only ReinDeer references have access too. So
polymorphism doesn't apply in this case that's why Deer's version of hasHorn() method the one ending up being called. Hope it helps