Как перегрузка - это время компиляции, а переопределение - время выполнения?

Folks

Я наткнулся на множество тем для понимания полиморфизма (как времени компиляции, так и времени выполнения). Я был удивлен, увидев некоторые ссылки, где программисты заявляют, что перегрузка - это время выполнения, а переопределение - время компиляции.

Что я хочу знать здесь:

Runtime Polymorphism with a REAL TIME example and small code and what scenario we should use. Compile time Polymorphism with REAL TIME example and small code and when to use.

Потому что я прочитал много теоретических определений, но меня это не устраивает.

Кроме того, я подумал, что, где я также чувствовал, перегрузка должна быть во время выполнения, потому что, скажем, у меня есть метод, который вычисляет Площадь, только во время выполнения он решает, какой перегруженный метод вызывать на основе параметров, которые я передаю (скажем, если я передаю только один параметр, он должен запускать Square, а если параметры 2, он должен запускать Rectangle) .... Так разве я не могу требовать его выполнения? Как его время выполнения? (Большинство говорят, теоретически, перегрузка - это время компиляции, но они даже не дают правильный пример реального времени ... очень немногие утверждают, что время выполнения) ....

Кроме того, я считаю, что переопределение - это время компиляции, потому что, пока вы пишете код и выполняете компиляцию, вы гарантируете, что используете виртуальное ключевое слово, а также переопределяете этот метод в производном классе, что в противном случае могло бы привести к ошибке времени компиляции. Так что я чувствую время компиляции, так же, как я видел в потоке ..... Но большинство потоков требует его выполнения: D

Я в замешательстве :( Этот вопрос является дополнительным к моим вопросам 1 и 2. Пожалуйста, помогите с примером в реальном времени .., поскольку я уже знаком с теоретическими определениями .... :(

Спасибо....

Ответы на вопрос(3)

Ваш ответ на вопрос