Наследование – это механизм ООП, который позволяет создавать новые классы на основе существующих. Новый класс (потомок) наследует поля и методы родительского класса, а также может добавлять свои собственные или переопределять существующие. Это способствует повторному использованию кода и созданию логических иерархий.
Полиморфизм – это способность объектов разных классов реагировать на один и тот же метод по-разному. Для ссылочных типов данных это означает, что можно работать с объектами различных классов через ссылку на базовый класс или интерфейс. Конкретная реализация вызываемого метода будет зависеть от фактического типа объекта во время выполнения. Существует два основных вида полиморфизма: