Usando l'operatore
instanceof
, puoi scoprire da quale classe proviene un oggetto. Questo operatore ha due argomenti. A sinistra c'è un riferimento all'oggetto e a destra c'è il nome del tipo con cui viene verificata la compatibilità dell'oggetto. Per esempio:
Parent р = new Child(); // проверяем переменную р типа Parent
//на совместимость с типом Child print(p instanceof Child);
Il risultato sarà vero . Pertanto l'operatore instanceof
non si basa sul tipo del riferimento, ma sulle proprietà dell'oggetto a cui si riferisce. Ma questo operatore restituisce un valore vero non solo per il tipo da cui è stato derivato l'oggetto. Aggiungiamone un'altra alle classi già dichiarate:
// Объявляем новый класс и наследуем
// его от класса Child
class ChildOfChild extends Child {}
Ora creiamo una variabile di un nuovo tipo:
Parent p = new ChildOfChild();
print(p instanceof Child);
La prima riga dichiara una variabile di tipo Parent
, che viene inizializzata con un riferimento a un oggetto derivato da ChildOfChild
. Nella seconda riga, l'istruzione instanceof
analizza la compatibilità del riferimento al tipo Parent
con la classe Child
e l'oggetto coinvolto non deriva né dalla prima né dalla seconda classe. Tuttavia, l'operatore restituirà true perché la classe da cui deriva questo oggetto eredita da Child
. Collegamento alla fonte originale: Operatore istanzadi
GO TO FULL VERSION