在Java中,super关键字用于引用父类(超类)的一个属性、方法或构造器。super的使用场景主要有以下几种:
当子类和父类具有相同的属性名时,可以使用super关键字访问父类的属性。例如:
class Parent {
String name = "Parent";
}
class Child extends Parent {
String name = "Child";
void printNames() {
System.out.println("Child name: " + name); // 输出子类的name属性
System.out.println("Parent name: " + super.name); // 使用super访问父类的name属性
}
}
当子类覆盖了父类的方法时,可以使用super关键字调用父类的方法。例如:
class Parent {
void printMessage() {
System.out.println("Parent message");
}
}
class Child extends Parent {
@Override
void printMessage() {
System.out.println("Child message");
}
void printBothMessages() {
printMessage(); // 调用子类的printMessage方法
super.printMessage(); // 使用super调用父类的printMessage方法
}
}
在子类的构造器中,可以使用super()调用父类的构造器。这通常用于确保父类在子类之前正确初始化。例如:
class Parent {
Parent() {
System.out.println("Parent constructor");
}
}
class Child extends Parent {
Child() {
super(); // 调用父类的构造器
System.out.println("Child constructor");
}
}
注意:
super()必须是子类构造器中的第一个语句。super(),编译器会自动插入一个无参数的super()调用。总之,在Java中使用super关键字可以帮助我们更好地处理子类与父类之间的关系,提高代码的可读性和可维护性。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。