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?
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?
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!
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 ;)