本文概述
- 例子1
- 例子2
- 笔记
如果你的方法覆盖了其超类的方法之一, 则可以通过使用关键字super来调用覆盖的方法。
例子1【super关键字在Java中意味着什么】看一下这个例子, 我们将使用super并通过构造函数发送参数:
class Animal {public Animal(String arg) {System.out.println("Constructing an animal: " + arg);
}}class Cat extends Animal {public Cat() {super("This is from cat constructor");
System.out.println("Constructing a cat.");
}}public class Test {public static void main(String[] a) {new Cat();
}}
输出将如下所示:
Constructing an animal: This is from cat constructor Constructing a dog.
初始化cat函数, 然后执行super方法并首先调用Animal, 最后打印” Constructioning a cat” 行。
例子2现在看下面的示例, 我们将使用super关键字直接从父类中调用方法:
class Base{int a = 100;
void Show(){System.out.println(a);
}}class Son extends Base{int a = 200;
void Show(){// Call Show method from parent classsuper.Show();
System.out.println(a);
}public static void Main(String[] args){new Son().Show();
}}
输出将如下所示:
100200
我们将从Son类执行Show方法, 在子类的Show方法内部, 我们将使用super.Show执行Base类的show方法。
笔记每当我们在派生类构造函数中使用super()或super(arguments)时, super都必须始终作为派生类构造函数主体中的第一个可执行语句, 否则会出现编译时错误(对super的调用必须是第一个构造函数中的语句)。
推荐阅读
- 计算机字符编码的前世今生
- 有关学习Java编程的技巧
- 如何在Java中多次执行Cordova回调(Android)
- 如何在Android中使用JSCH(SFTP)从服务器删除文件
- 如何从Java中的JSON对象获取浮点值
- 如何从Java运行系统应用程序(可执行文件)
- 如何解决Android Studio错误(无法解决符号”RandomAccessFile”)
- 如何使用Java检索Android设备上的可用RAM
- 如何在Java中打印三角形矩形图案(从左到右和从右到左)