在 Java 中,“Super 超类”通常指父类( superclass ),而 super 关键字用来在子类中调用父类的内容。下面从常见用法给你系统讲一下。
super 能调用什么?在子类中,super 可以用来:
super(参数列表);
super()(父类无参构造)class Animal {
Animal(String name) {
System.out.println("Animal: " + name);
}
}
class Dog extends Animal {
Dog() {
super("Dog"); // 调用父类构造方法
System.out.println("Dog created");
}
}
当子类成员变量与父类重名时使用:
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
}
}
当子类重写了父类方法时使用:
class Parent {
void say() {
System.out.println("Parent say");
}
}
class Child extends Parent {
void say() {
super.say(); // 调用父类方法
System.out.println("Child say");
}
}
❌ 不能在 static 方法中使用 super
static void test() {
super.x; // 错误
}
❌ super() 不在构造方法第一行
Child() {
System.out.println("hi");
super(); // 错误
}
super就是“找父类”:构造用super(),变量用super.x,方法用super.method()
如果你有具体代码场景(比如抽象类、接口、构造冲突),可以贴出来我帮你改。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。