You need to enable JavaScript to run this app. 未显式继承其他类的私有嵌套类中super关键字指代什么?
优惠活动
大模型
产品
解决方案
定价
更多

未显式继承其他类的私有嵌套类中super关键字指代什么?

class Outer {
    private class Inner {
        @Override
        public int hashCode() {
            return super.hashCode();
        }
    }
}

此处的super指代Inner类的默认父类java.lang.Object。

Java语言规范明确规定:所有没有显式通过extends关键字指定父类的类,默认直接继承Object类,嵌套内部类也遵循该规则。你的Inner类没有声明显式父类,所以它的父类就是Object,super.hashCode()实际调用的是Object提供的原生哈希值计算逻辑,返回的是和当前Inner实例内存地址关联的哈希值。

IntelliJ自动生成重写方法时,如果检测不到父类有自定义的hashCode实现,就会默认生成调用父类对应方法的代码。如果需要基于业务字段计算哈希值,可以在自动生成的弹窗里勾选对应参与计算的成员变量,IDE就会生成自定义的哈希计算逻辑。


内容的提问来源于stack exchange,提问作者mooglin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 21:54:02