New?

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: