Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Dúvida no Ex. 1 da Aula 4 - Interfaces

No exercício 1, onde aparece a classe main Teste, o que mudaria se ao invés de criar uma classe

AreaCalculavel a = new Retangulo(2,3);

eu criasse

Retangulo a = new Retangulo(2,3);

Alguém saberia me responder?

5 respostas

Você utilizando uma variavel AreaCalculavel seu objeto só poderia utilizar métodos que o tipo dessa variável possuísse, ou seja, o método calcula()

Exemplo:

Digamos que além do método calcula() sua classe Retângulo tivesse um getter, getLado()

Caso você usasse a variável do tipo AreaCalculavel você não poderia chamar o getter, pois esse método não está declarado na interface AreaCalculavel, então variáveis desse tipo não chamam o método. Já se você usar uma variavel do tipo Retângulo, poderia chamar o método sem problema, pois, o método estaria declarado na classe Retângulo e variáveis desse tipo teriam acesso a esse método.

Legal Romário! Obrigado pela explicação!

solução!

Amigo só complementando a resposta do amigo ai em cima e respondendo sua pergunta bem diretamente, o que mudaria apenas nesse caso seria a maneira de instânciar (criar) um objeto.

Você lembra de polimorfismo? Polimorfismo é o que permite você instânciar um objeto de várias maneiras, ou seja:

AreaCalculavel a = new Retangulo(2,3);

Nesse caso o polimorfismo diz que você referenciar uma AreaCalculável criando uma nova instância ou objeto do tipo Retangulo, e aqui:

Retangulo a = new Retangulo(2,3);

Você já passa o objeto definitivo na criação.

Blz? Bons estudos.

Ok Felipe! Obrigado pelo esclarecimento!

Marcos, por favor só solucione uma resposta como solução para o tópico não ficar aberto.

Obrigado ;)