温馨提示×

温馨提示×

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

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

java Super超类有何作用

发布时间:2026-10-06 05:49:38 来源:亿速云 阅读:92 作者:小樊 栏目:编程语言

在 Java 中,super 不是“超类”本身,而是一个关键字(reference),用来引用当前对象的父类(超类)成员。它的主要作用可以总结为以下几类:


一、super 的主要作用

1️⃣ 调用父类的构造方法

语法:

super(参数);

特点:

  • 必须写在子类构造方法的第一行
  • 若子类构造方法未显式写 super(...),编译器会默认调用 super()(父类无参构造)

示例:

class Animal {
    Animal(String name) {
        System.out.println("Animal: " + name);
    }
}

class Dog extends Animal {
    Dog() {
        super("Dog");
        System.out.println("Dog constructor");
    }
}

✅ 作用:保证父类先被正确初始化


2️⃣ 访问父类的成员变量(解决命名冲突)

当子类成员变量与父类同名时,用 super 区分。

class Parent {
    int x = 10;
}

class Child extends Parent {
    int x = 20;

    void show() {
        System.out.println(x);        // 20
        System.out.println(super.x);  // 10
    }
}

✅ 作用:明确访问父类字段,避免歧义


3️⃣ 调用父类的方法(尤其是被重写的方法)

当子类**重写(override)**了父类方法,但仍想使用父类实现时:

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

class Child extends Parent {
    @Override
    void show() {
        super.show(); // 调用父类方法
        System.out.println("Child show");
    }
}

✅ 常见用途:

  • 扩展父类行为
  • 不破坏原有逻辑

二、super 与 this 的区别

对比项 this super
指向 当前对象 父类对象
构造方法 this() super()
成员访问 本类成员 父类成员
使用位置 本类任意位置 子类中使用

三、super 的使用限制

  • ❌ 不能在 static 方法中使用(无对象)
  • ❌ 不能用于静态变量
  • ✅ 只能在实例上下文中使用

四、总结一句话

super 的作用是:在子类中安全、明确地访问父类的构造方法、成员变量或方法。

如果你愿意,我也可以用内存模型图或面试题角度再帮你讲一遍。

向AI问一下细节

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

AI
助
手