2016-05-07 13 views
0

Ich versuche Code dieses Tutorial zu verstehen: Java serial speziell in:Ein seltenes Verhalten von instanceof

"if (commPort instanceof SerialPort)" 

die

"commPort" is CommPort class object 

und "Serialport" ist eine Klasse true zurück, dass Erben der CommPort-Klasse

Wie möglich, dass commPort Instanz der SerialPort-Klasse sein könnte.

die richtige wäre, zum Beispiel:

Serialport Serieller_Anschluss;

"if (serialPort instanceof CommPort)" 

oder falsch? Danke ...

+2

Ich weiß nicht, was genau Code tut, aber es ist in Ordnung. Es prüft, ob der geöffnete Port, der ein CommPort ist, vom Typ SerialPort ist oder nicht. Was ist daran falsch? –

+0

Ich verstehe, dass eine Eltern-Objektklasse keine Instanz einer Kindklasse ist, sondern die Kind-Objektklasse eine Instanz der Elternklasse ist. – Luis

+1

Alter lass mich das erklären. Sie haben eine Klasse namens Animal. Mensch dehnt Tier aus. Jetzt haben Sie ein Tier namens Jhon und Sie wollen überprüfen, ob John ein Mensch oder ein Murmeltier ist? dann sagst du assertTrue (John instanceof Human) –

Antwort

1

Wie möglich ist, dass commPort Instanz der SerialPort Klasse sein könnte.

sagte Sie

"Serialport" ist eine Klasse, die von CommPort Klasse erbt

So könnte man

CommPort commPort = new SerialPort(); 
if (commPort instanceof SerialPort) // true. 

tun, aber wenn Sie schreiben, so etwas wie

CommPort commPort = new ParallelPort(); 
if (commPort instanceof SerialPort) // false 
+1

Vielen Dank, ich verstehe – Luis

+0

@Luis Sie können Antworten oder Antworten, die Sie mögen. –