“WagnerPaz”:
Olá galera!!!
Ficou uma dúvida ainda. O operador instanceof só pode ser usado entre uma referencia e um tipo que pertençam a mesma hierarquia?
Ex.: Color c = new Color();
if ( c instanceof Font ) {
System.out.println(“true”);
}
else {
System.out.println(“false”);
}
Essa comparação apenas retornaria false ou ocorreria um erro de compilação??
Sim … você deve saber se Font f = (Font)c; pode ser feito,se puder entao não dá erro de compilação, mas não significa que seja true a comparação. Será true se a instância pertencer a família de hieraquia das classes ,e se essa instância passar no teste E-UM .
No seu exemplo, vc deve saber como é a hierarquia de classes das envolvidas na comparacao…
Color e Font não fazem parte de uma ramo comum na hierarquia de classes.
Color public class Color implements Paint, java.io.Serializable
Font public class Font implements java.io.Serializable
Ou seja , não passa no teste E-UM
Ps.: A classe Color não aceita construtor sem argumento! 