каждый неабстрактный класс должен обеспечивать реализацию для всех методов, определенных в любом из его абстрактных суперклассов или интерфейсов.Компилятор достаточно умен, чтобы проверить всю иерархию классов, чтобы определить, что вы забыли реализовать что-то, для чего ваш класс заявляет, что обеспечивает реализацию.