Сын a
метод должен быть вызван. Если это не так, то вы либо не работаете с экземпляром Son
, либо неправильно переопределили метод. Это может произойти, если подписи не совпадают. Я бы дважды проверил в вашей реализации, что подписи точно такие же. Кроме того, попробуйте выбросить @Override
выше Son
реализации a
и посмотреть, если вы получите ошибку компиляции. Если вы это сделаете, значит, вы неправильно переопределяете метод.
Как это
class Son extends Father{
@Override
a(){ ...}
}
Кроме того, a
должен быть либо защищенным, либо общедоступным (пакет private по умолчанию будет работать только в том случае, если Father
и Son
находятся в одном пакете). то есть Son
должен уметь "видеть" метод a()
.