Estou com uma dúvida em relação á interfaces na verdade...
No mesmo exemplo da aula... em que temos vários tipos de impostos.
Quando criamos o método RealizarCalculo(Orcamento orcamento, Imposto imposto)
, este recebe no segundo parâmetro, o tipo de uma interface, ou seja, qualquer objeto que implemente o método daquela interface, pode ser passado como parâmetro desse método já que obrigatoriamente aquele objeto terá a implementação concreta.
Desde que programo OO, isso nunca fez sentido pra mim. Já li diversos artigos na internet porém nunca fica tão claro. Por que eu devo definir o tipo de uma interface como parâmetro de um método ou como um tipo de uma variável de uma classe?
Eu entendo que quando eu for atribuir uma referência ao tipo da interface, a implementação será a daquela referência, mas e se eu quiser manipular qualquer outra informação? O tipo da interface não vai me permitir isso por que eu não tenho o acesso aos atributos daquele objeto e nem vou saber quais são. Se eu passasse um tipo concreto, teria acesso. Não sei se consegui ser claro na minha dúvida.