我正在处理一个扩展的类JFrame.
它不是我的代码,它super在开始构建GUI之前调用它.我想知道为什么这样做,因为我总是只是访问超类的方法而不必调用super();
Aer*_*diR 97
super()对于具有父级的所有类(这是Java中的每个用户定义的类)都存在一个没有参数的隐式调用- 因此通常不需要显式调用它.但是,如果父的构造函数接受参数,并且您希望指定它们,则可以使用super()带参数的调用.此外,如果父的构造函数接受参数,并且它没有默认的无参数构造函数,则需要super()使用参数调用.
一个例子,显式调用super()给你一些额外的控制帧的标题:
class MyFrame extends JFrame
{
public MyFrame() {
super("My Window Title");
...
}
}
Run Code Online (Sandbox Code Playgroud)
Tim*_*ote 20
super()当您不自己完成对父类的空构造函数的调用时,将自动完成.这就是你从未在代码中做到这一点的原因.它是为你完成的.
当您的超类没有no-arg构造函数时,编译器将要求您super使用适当的参数进行调用.编译器将确保您正确地实例化该类.所以这不是你必须担心的事情.
无论是否super()在构造函数中调用,都不会影响调用父类方法的能力.
作为旁注,有人说为了清楚起见,通常最好手动拨打电话.
| 归档时间: |
|
| 查看次数: |
93232 次 |
| 最近记录: |