jhl*_*u87 95 java constructor subclass superclass
所以说我有一个扩展超类的子类.在什么情况下我需要显式键入super()以运行超类构造函数?
我正在看一本关于抽象类的书中的例子,当他们用非抽象子类扩展它时,子类的默认构造函数是空白的,并且有一个注释表明将调用超类的默认构造函数.与此同时,我也看到过这里有人问题没有明确调用的情况super().
区别于从子类的默认/非默认构造函数调用超类的默认/非默认构造函数?
Jon*_*eet 140
你永远不需要
super();
Run Code Online (Sandbox Code Playgroud)
如果您没有指定任何其他内容,那就是那里的内容.在以下情况下,您只需要指定要调用的构造函数:
你声称:
与此同时,我也看到了这里的实例,其中某人的问题没有明确地调用super().
你能举一个例子吗?我无法想象这有多可能......
Voo*_*Voo 10
如果没有显式调用超级构造函数,则将调用参数less constructor(super()).这意味着如果没有可访问的无参数的构造函数,则必须自己调用特定的构造函数.
但是,即使您可以使用默认构造函数,也经常需要不同的构造函数 - 取决于您的代码.
另请注意,如果没有声明构造函数,编译器会自动生成一个公共默认构造函数,但只要编写自己的构造函数,就不会再发生这种情况.
| 归档时间: |
|
| 查看次数: |
58854 次 |
| 最近记录: |