温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Super超类必须写吗

发布时间:2026-10-06 07:53:41 来源:亿速云 阅读:87 作者:小樊 栏目:编程语言

在 Java 中,super 不是必须写的,要不要写取决于你的具体需求。

下面分几种常见情况说明:


1️⃣ 子类构造方法里:不一定要写 super()

  • 如果父类有“无参构造方法”(或没写任何构造方法,Java 会默认给一个无参构造):
    • 子类构造方法可以省略 super()
    • Java 会自动隐式调用 super()
class Father {
    // 默认有无参构造
}

class Son extends Father {
    Son() {
        // 相当于自动执行了 super()
    }
}

✅ 不写 super 也完全没问题


2️⃣ 父类没有无参构造时:必须写 super(参数)

如果父类只定义了有参构造:

class Father {
    Father(int x) {}
}

子类必须显式调用:

class Son extends Father {
    Son() {
        super(10); // 必须写
    }
}

❌ 不写会编译报错


3️⃣ 想调用父类的方法或属性时:才需要 super

例如方法重写后,还想用父类版本:

class Father {
    void show() {
        System.out.println("Father");
    }
}

class Son extends Father {
    void show() {
        super.show(); // 调用父类方法
        System.out.println("Son");
    }
}

✅ 这种情况 super 是“按需使用”


4️⃣ 总结一句话

场景 是否必须写 super
父类有无参构造 ❌ 不用写
父类只有有参构造 ✅ 必须写
调用父类方法/变量 ✅ 按需写
普通继承 ❌ 不必须

如果你是初学 Java / 准备考试 / 写项目,可以告诉我具体场景,我可以帮你判断“这里该不该写 super”。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手