instanceof的罕见行为

时间:2016-05-07 16:42:22

标签: java class inheritance instanceof

我正在尝试理解本教程的代码: Java serial 特别是:

"if ( commPort instanceof SerialPort )"

返回true

"commPort" is CommPort class object

和 “SerialPort”是继承CommPort类

的类

commPort怎么可能是SerialPort类的实例。

正确的是,例如:

SerialPort serialPort;

"if ( serialPort instanceof CommPort )"

或者我错了? 感谢...

1 个答案:

答案 0 :(得分:1)

  

commPort怎么可能是SerialPort类的实例。

你说

  

"的SerialPort"是一个继承CommPort类

的类

所以你可以做到

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

但如果你写的话是

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