温馨提示×

温馨提示×

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

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

java中Super超类怎么用

发布时间:2026-09-15 16:03:39 来源:亿速云 阅读:81 作者:小樊 栏目:编程语言

在 Java 中,super 不是“超类”本身,而是一个关键字,用来表示当前对象的父类(超类)引用。它的主要用途有三类:调用父类构造方法、访问父类成员变量、调用父类方法

下面用通俗例子说明。


一、super 的三种常见用法

1️⃣ 调用父类构造方法(最常用)

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

class Dog extends Animal {
    Dog() {
        super("小狗"); // 必须放在第一行
    }
}

✅ 说明:

  • super(...) 用于调用父类构造方法
  • 必须写在第一行
  • 如果不写,Java 会默认调用 super()(父类无参构造)

2️⃣ 访问父类成员变量(解决重名问题)

class Father {
    String name = "爸爸";
}

class Son extends Father {
    String name = "儿子";

    void show() {
        System.out.println(name);      // 儿子
        System.out.println(super.name); // 爸爸
    }
}

super.变量名 用来访问父类被隐藏的成员变量


3️⃣ 调用父类方法(避免重写后无法调用原方法)

class Father {
    void say() {
        System.out.println("我是爸爸");
    }
}

class Son extends Father {
    @Override
    void say() {
        super.say(); // 调用父类方法
        System.out.println("我是儿子");
    }
}

✅ 常用于:

  • 重写方法时保留父类逻辑
  • 模板方法设计模式

二、super 和 this 的区别

关键字 含义
this 当前对象
super 当前对象的父类对象
this();      // 调用本类构造
super();     // 调用父类构造

三、常见错误

❌ 在静态方法中使用 super

static void test() {
    super.xxx; // 错误
}

super 不在构造方法第一行

Dog() {
    System.out.println();
    super(); // 错误
}

四、一句话总结

super 就是“去找父类要东西”

  • 要构造 → super()
  • 要变量 → super.x
  • 要方法 → super.method()

如果你愿意,我也可以结合继承 + 构造方法执行顺序面试题给你讲。

向AI问一下细节

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

AI