Como sobrecarregar é tempo de compilação e substituindo é Runtime?

Pessoal

Eu me deparei com muitos tópicos para entender o polimorfismo (tempo de compilação e tempo de execução). Fiquei surpreso ao ver alguns links onde os programadores afirmam que Overloading é Runtime e Overriding é tempo de compilação.

O que eu quero saber daqui é:

Polimorfismo de tempo de execução com um exemplo de TEMPO REAL e código pequeno e qual cenário devemos usar.Polimorfismo de tempo de compilação com exemplo de TEMPO REAL e código pequeno e quando usar.

Porque li muitas definições teóricas, mas não estou satisfeito em entender isso.

Além disso, eu dei um pensamento, que onde eu também senti, sobrecarga deve ser runtime como porque, digamos que eu tenho um método que calcula Área, em tempo de execução só decide qual método sobrecarregado para chamar com base nos parâmetros que eu passo (diga se eu passar apenas um parâmetro, deve disparar Square, e se os parâmetros forem 2, deve disparar Rectangle) .... Então, não é possível reivindicar seu tempo de execução? Como é seu tempo complie? (A maioria diz que teoricamente, a sobrecarga é o tempo de compilação, mas eles nem sequer dão um exemplo de tempo REAL correto ... muito poucos reivindicam seu tempo de execução) ....

Além disso, sinto que substituir é o tempo de compilação porque, enquanto você escreve código e complie, você garante que usou a palavra-chave virtual e também substitui esse método na classe derivada que, caso contrário, forneceria erro de compilação. Então, eu sinto seu tempo de compilação, da mesma maneira que eu vi em um thread ..... Mas a maioria dos threads afirma seu tempo de execução: D

Estou confuso :( Esta questão é adicional à minha pergunta 1 e 2. Por favor, ajudem com um exemplo em tempo real .. como já estou ciente das definições teóricas .... :(

Obrigado....

questionAnswers(3)

yourAnswerToTheQuestion