New?

5 respostas
J

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.

5 Respostas

leandronsp

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).

Raff

cara isso é conceito de OO (orientação a objetos) dê uma estudo em OO, polimorfimos, herança, etc.

ViniGodoy

Isso é possível se o tipo da esquerda for um supertipo ou uma interface, implementada pelo tipo da direita.

Por exemplo isso:
public interface Carro {
    String getNome();
}

public class CarroFiat implements Carro {
    public String getNome() { return "Fiat Uno"; }
}
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

florio

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

Carlos_ds_jar

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.


Pelo menos no primeiro caso é por que a CLASSE LinkedList segue o contrado de implementação definido pela INTERFACE List. :idea:

Criado 9 de agosto de 2010
Ultima resposta 9 de ago. de 2010
Respostas 5
Participantes 6