Java super关键字的简介说明
java之super关键字功能:
java中的super
关键字是一个引用变量,其功能为引用直接父类对象。
当我们创建一个子类的实例时,父类的实例被隐式创建,此时我们可以使用super
关键字引用变量引用。
java super
关键字的应用场景如下:
super
用于引用直接父类的实例变量super
用于调用直接父类方法super()
用于调用直接父类构造函数
1. super用于引用直接父类实例变量
我们可使用super
关键字来访问父类的数据成员或字段。
当父类和子类具有相同的字段,则使用super
来指定为父类数据成员或字段。
class parentClass{
String keyId= "0";
}
class subClass extends parentClass{
String keyId = "88";
void printInfo() {
System.out.println(keyId );// 0
System.out.println(super.keyId );// 88
}
}
class testClass{
public static void main(String args[]) {
subClass d = new subClass();
d.printInfo();
}
}
-----运行以上代码,将输出以下信息----
0
88
在上面的代码中parentClass
和subClass
都有一个共同的属性:keyId
。
当我们需输出父类中keyId属性,此时需借助super关键字
2. 使用 super 来调用父类方法
super
关键字也可以用于调用父类方法。 如果子类包含与父类相同的方法,则应使用super
关键字指定父类的方法。 换句话说,如果方法被覆盖就可以使用 super
关键字来指定父类方法。
class parentClass{
void run() {
System.out.println("parent run...");
}
}
class subClass extends parentClass{
void run() {
System.out.println("sub run...");
}
void stop() {
System.out.println("sub stop...");
}
void test() {
super.run();
stop();
}
}
class testClass{
public static void main(String args[]) {
subClass = new subClass();
d.test();
}
}
-----运行以上代码,将输出以下信息-----
parent run...
sub stop...
在以上的代码,使用super关键字调用父类中的方法
3. 借助 super 来调用父类构造函数
class parentClass{
parentClass() {
System.out.println("parentClass is created");
}
}
class subClass extends parentClass{
subClass() {
super();
System.out.println("subClass is created");
}
}
class testClass {
public static void main(String args[]) {
subClass d = new subClass ();
}
}
注意事项:
当子函数未使用super()或this()关键字时,
则编译时,会自动在构造函数中加入super()函数
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。