Suponhamos que eu tenha um objeto Player com N variáveis e métodos. Este objeto player implementa a interface Nameable que tem somente dois métodos (getName e setName). Caso em uma estrutura de código, eu defina:
Nameable nameable = World.getPlayer(“Murilo”);
O espaço alocado pelo objeto “nameable” seria menor do que se eu escrevesse a mesma estrutura da seguinte forma?
Mas qual o motivo da pergunta? Geralmente você nao deveria se preocupar tanto com isso.
staroski
O espaço alocado sempre será o espaço necessário para a instância da classe.
Independente se a variável declarada é mais abstrata, o objeto sempre vai ocupar a memória necessária para as instâncias da classe na qual foi realizar a instrução new ConstrutorDaClasse().
Então quando você faz Nameable nameable = World.getPlayer(“Murilo”); o espaço alocado será o espaço necessário para alocar o objeto retornado pelo método getPlayer().
M
MuriloHenriqueBR
Era apenas uma curiosidade, não se preocupe
M
MuriloHenriqueBR
Muito obrigado!
darlan_machado1 like
Isso é o que permite que seja feito o cast de uma instância de objeto de uma classe/interface mais abstrata para uma instância de objeto de uma classe mais especializada.