2016-05-07 60 views
0

我想了解本教程的代碼,一個罕見的現象: Java serial 特別是在:的的instanceof

"if (commPort instanceof SerialPort)" 

返回真

"commPort" is CommPort class object 

和 「的SerialPort」 是一個類, CommPort類的繼承

commport可能是SerialPort類的實例。

正確的是,例如:

SerialPort serialPort;

"if (serialPort instanceof CommPort)" 

還是我錯了? 謝謝...

+2

我不知道究竟是什麼代碼,但沒關係。它正在檢查打開的CommPort端口是否來自SerialPort類型。這有什麼問題? –

+0

我明白,父對象類不是子類的實例,但是,是子對象類是父類的實例。 – Luis

+1

老兄讓我解釋一下。你有一個名爲Animal的類。 人類延伸動物。 現在你有一個名爲Jhon的動物,你想檢查John是人類還是旱獺? 然後你說assertTrue(John instanceof Human) –

回答

1

commport有可能是SerialPort類的實例。

你說

「的SerialPort」 是一類CommPort的類繼承

所以,你可以做

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

,但如果你喜歡寫東西

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

謝謝你,我明白 – Luis

+0

@Luis你可以upvote或接受你喜歡的答案。 –