Немного поигрался, я обнаружил, что получаю сообщение об ошибке при переопределении методов суперкласса в подклассе, когда я делаю следующее:
Однако, если я сделаю это в другом направлении, ошибка не будет:
Это кажется мне противоречащим интуиции - я ожидал, что он будет работать наоборот, чтобы обеспечить скрытие и инкапсуляцию информации. Похоже, что это допускает плохой дизайн, позволяя открывать внутренние компоненты таким образом, чтобы это могло нарушить работу других методов, и я не вижу случая, когда это было бы хорошей идеей. Почему это было реализовано таким образом и что я упустил?
Также, является ли это стандартной практикой для других языков программирования?