Galera, eu tenho uma duvida que me persegue a alguns dias…
List lista = new LinkedList()
Como que uma variavel do tipo de uma
classe instancia uma classe diferente?
Carro car = new CarroFiat();
grato.
Galera, eu tenho uma duvida que me persegue a alguns dias…
List lista = new LinkedList()
Como que uma variavel do tipo de uma
classe instancia uma classe diferente?
Carro car = new CarroFiat();
grato.
isto significa que a classe LinkedList ‘implements’ List. LinkedList É-UM List.
Logo, você pode referenciar este objeto “new LinkedList()” à uma variável do tipo List.
Quando começar a enviar mensagens a este objeto ele vai se comportar como um LinkedList (implementação).
cara isso é conceito de OO (orientação a objetos) dê uma estudo em OO, polimorfimos, herança, etc.
Isso é possível se o tipo da esquerda for um supertipo ou uma interface, implementada pelo tipo da direita.
Por exemplo isso:
[code]public interface Carro {
String getNome();
}
public class CarroFiat implements Carro {
public String getNome() { return “Fiat Uno”; }
}[/code]
Deixa você fazer isso:
Carro carro = new CarroFiat();
Dê uma procurada sobre os temas de herança e polimorfismo.
http://downloads.caelum.com.br/apostila/caelum-java-objetos-fj11.pdf
Rapaiz, imagino eu que isso seja por causa de Herança…
Por exemplo, Object é a superclasse de todas as demais.
Então, o comando:
Object objeto = new String();
é um exemplo chulo, mas correto. :oops:
Dá uma procurada aki no GUJ sobre Herança, classe pai e classe filho, ok?
[]'s
[quote=Java_Terminator]Galera, eu tenho uma duvida que me persegue a alguns dias…
List lista = new LinkedList()
Como que uma variavel do tipo de uma
classe instancia uma classe diferente?
Carro car = new CarroFiat();
grato.
[/quote]
Pelo menos no primeiro caso é por que a CLASSE LinkedList segue o contrado de implementação definido pela INTERFACE List. :idea: