Estou estudando para a certificação através do livro da Kathy Sierra e Bert Bates, e me deparei com duas explicações sobre variáveis de referências que não estou conseguindo entender segue abaixo:
“Uma variável de referência pode ser declarada como um tipo de classe ou um tipo de interface. Se a variável for declarada como um tipo de interface, ela pode referenciar qualquer objeto de qualquer classe que implemente a interface.”
“Uma variável de referência pode ser declarada como um tipo de classe ou um tipo de interface. Se a variável for declarada como um tipo de interface, ela pode referenciar qualquer objeto de qualquer classe que implemente a interface!”
Então, essas ai são as explicações que não entendi direito, agradeço se puderem me ajudar !!
Considere o seguinte trecho:
class MinhaInterface {}
class MinhaClasse implements MinhaInterface {}
class MinhaOutraClasse implements MinhaInterface {}
O que o trecho que vc citou diz é, simplesmente, que qualquer uma das situações abaixo é possível:
Object a = new MinhaClasse();
MinhaClasse b = new MinhaClasse();
MinhaInterface c = new MinhaClasse();
MinhaInterface d = new MinhaOutraClasse();
A variável c é de um tipo referência (tipo MinhaInterface) e pode conter uma referência para qualquer classe que implemente MinhaInterface.
Não deixe de conferir o link abaixo.
https://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html
2 curtidas
Entenda variável de referência como qualquer variável que não é de tipo primitivo.
Além de classe e interface, uma variável de referência também pode ser do tipo enum.
Uma variável é declarada da seguinte forma:
<modificador de acesso> <tipo de dado> <identificador>;
Onde o <tipo de dado> pode ser um tipo primitivo (byte, boolean, short, char, int, float, long, double), uma classe, uma interface ou um enum.
1 curtida