Salve, Salve Galera!
Alguém pode me explicar de maneira clara a diferença ente a declaração dos objetos abaixo…
class C {}
class D extends C{}
C c = new C();
C d = new D();
Atn.
Dennys Fredericci
Salve, Salve Galera!
Alguém pode me explicar de maneira clara a diferença ente a declaração dos objetos abaixo…
class C {}
class D extends C{}
C c = new C();
C d = new D();
Atn.
Dennys Fredericci
C c = new C(); Uma declaração de um objeto recebendo uma nova instância.
C d = new D(); Uma declaração de um objeto que recebe a instância de sua subclasse, isso é possível porque seguindo o modelo OO de desenvolvimento a classe D é uma C.
Pra ficar mais claro.
public class Animal {}
public class Cachorro extends Animal {}
public class Cavalo extends Animal {}
Você poderia fazer assim:
Animal a = new Cachorro(); //porque Cachorro [b]é um[/b] Animal.
Animal a1 = new Cavalo(); //porque Cavalo [b]é um[/b] Animal
Mas não poderia fazer isso: