Резюме для программиста
Впрочем, мои "позволяет" и "заставляет" тоже нужно убрать.
Итого, как я считаю, правильное понимание ключевых слов new и override:
new:
- при вызове базовых членов из производных вызываются базовые члены;
- при вызове производных из производных вызываются производные члены, если их поведение не переопределено в более производных;
override
- при вызове базовых членов из производных вызываются производные члены;
- при вызове производных из производных вызываются производные члены, если их поведение не переопределено в более производных;
Итого получается, что если в производных классах ничего не переопределено или этих классов вообще нет, то их члены вызываются, как если бы у этих классов не было предков - т.е. нельзя вызвать базовые версии членов. (На самом деле можно, но лучше так не делать.)