2016-05-07 27 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或接受你喜欢的答案。 –