Java:方法重写和类型转换

标签 java

假设有一个名为 Question 的类,我想重写其中的 equals 方法。我想让这两个对象相同,如果它们的属性“number”相同。

现在,如果我已经使用 if 条件检查“o”是否是 Question 的实例,为什么我必须进行类型转换“(Question)o”?

public boolean equals(Object o) {
    if(o instanceof Question) {
        return ((Question) o).number == number;
    }
    return false;
}

最佳答案

instanceof 运算符只是对对象 o 进行检查,看看它是否是 Question 的实例。它不会对 o 的状态或类型进行任何更改,因为我们已经将其指定为 Object

关于Java:方法重写和类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37149947/

相关文章:

java - 如何解码Java字符串中的unicode char?

Java 使用重写的方法

Java SSL 客户端未选择智能卡 key

java - Word2Vec 与中文

Java 7 ForkJoin 在必须 fork 时卡住

Java ExecutorService - 处于等待状态的线程

java - 如何按多个属性 Java8 对 HashMap 条目值进行排序

java - *无需*下一代 Java 插件部署 JNLP 小程序

java - Android 中按下 Back 键时会自动调用 LoaderManager?

java - 单个 servlet 如何处理来自客户端的多个请求