Полиморфизм в плане объектов это когда ты принимаешь один из типов входящий в сумму типов и он имеет поведение характерное для суммы типов. Т. Е. Ты говоришь что тебе нужен вот конкретный тип, а тебе отдают любой тип в сумму типов которого входит тип который ты запросил. Т. Е тот тип который является просто = твой тип + ещё какие-то типы. Ну и да. Переопределение - override это выставление приоритета одной функции в сумме типе над другой. Ты объединяешь (складываешь, конкатенируешь) 2 класса в один и говоришь что вот этот метод будет главным и будет вызываться он в не точно такая же его копия из жругого класса.