gpt4 book ai didi

java - Java的instanceof能否区分功能相同的类?

转载 作者:行者123 更新时间:2023-11-29 10:10:24 24 4
gpt4 key购买 nike

假设我有两个几乎相同的类,但它们代表的对象具有关键差异。目前,这些差异并未真正实现。

因此,例如,一个类,我们将其称为 MorningShiftWorker,与另一个类(我们将其称为 EveningShiftWorker)具有完全相同的方法和相同的构造函数。这两个对象都存储在它们的父类(super class)型 ShiftWorker 的列表中。

从逻辑上讲,将这两组分开是有意义的,但与其添加额外的变量,不如使用 检查 ShiftWorker 列表中的对象instanceof.

我的问题是:instanceof 是否足够智能以区分苹果和橙子?目前,这两个类除了名称外完全相同。这足以让 instanceof 将它们区分开来,还是我应该采用另一种方法来解决这个问题?

最佳答案

是的,instanceof 本质上是检查对象是否可以正确地转换为给定的类。假设我们有这些类:

public class Fruit {}
public class Orange extends Fruit {}
public class Apple extends Fruit {}

然后在一些方法中我们尝试:

Fruit f = new Apple();
boolean isOrange = f instanceof Orange; //False

这也适用于空的/非功能性接口(interface)。

关于java - Java的instanceof能否区分功能相同的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39124955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com