base
Это ключевое слово языка, которое используется для ссылки на базовый класс, класс, от которого наследуется текущий класс (расширяет).Когда вы создаете экземпляр класса, который расширяет другой, этот экземпляр также можно рассматривать или использовать в качестве базового класса.
virtual
Модификатор функции или свойства, которыйозначает, что свойство или функция могут быть переопределены в расширяющем классе (классе, который наследуется от базового класса, который определяет свойство или функцию).Переопределяющая функция или свойство должны иметь ту же сигнатуру, что и исходное определение, но реализация может быть изменена.Виртуальная функция или свойство должны быть немедленно реализованы в классе, где они определены, тогда как абстрактный метод или свойство реализуется только в расширяющем классе.
override
Модификатор функции или свойства, используемый для указания компилятору, что следующая функция или свойство расширяет или заменяет эквивалентную функцию или свойство из базового класса.