Vorrei sapere in merito al seguente comportamento dell'operatore instanceof
in Java.L'operatore 'instanceof' si comporta in modo diverso per interfacce e classi
interface C {}
class B {}
public class A {
public static void main(String args[]) {
B obj = new B();
System.out.println(obj instanceof A); //Gives compiler error
System.out.println(obj instanceof C); //Gives false as output
}
}
Perché è così? Non esiste alcuna relazione tra interface C
e class B
, ma fornisce false mentre in caso di obj instanceof A
viene visualizzato un errore del compilatore?
Nota: se lo si modifica in 'Oggetto obj = new B()', viene compilato. – immibis
Cosa dice il compilatore Errore? – karfau
Se 'classe B' è' finale' allora 'obj instanceof C' non verrà compilato neanche, perché se' B' non può avere sottotipi, allora è garantito che non è correlato a 'C'. – jaco0646