【问题标题】:A rare behavior of instanceofinstanceof 的罕见行为
【发布时间】:2016-05-07 16:42:21
【问题描述】:

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

"if ( commPort instanceof SerialPort )"

返回真

"commPort" is CommPort class object

和 “SerialPort”是继承CommPort类的类

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

正确的是,例如:

SerialPort 串口;

"if ( serialPort instanceof CommPort )"

还是我错了? 谢谢...

【问题讨论】:

  • 我不知道代码到底是做什么的,但没关系。它正在检查作为 CommPort 的打开端口是否来自 SerialPort 类型。这有什么问题?
  • 我知道父对象类不是子类的实例,但是,是的,子对象类是父类的实例。
  • 老兄让我解释一下。你有一个名为 Animal 的类。人类延伸动物。现在您有一个名为 Jhon 的动物,您想检查 John 是人类还是土拨鼠?然后你说 assertTrue(John instanceof Human)
  • 在这里你打开一个你确定是CommPort类型的端口,但是你想检查它是否也是SerialPort?或者可能是 ParallelPort(随便)并使用 instanceof 来实现。

标签: java class inheritance instanceof


【解决方案1】:

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

你说

“SerialPort”是继承CommPort类的类

所以你可以这样做

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

但是如果你写类似的东西

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 2011-03-02
    相关资源
    最近更新 更多