3

オブジェクトを構築するとき、コンストラクターにsuper()記述してもしなくても、 が呼び出されることを学びました。super()しかし、一部のコードでは、メソッドが明示的に呼び出されていることに気付きました。super()コンストラクターで暗黙的または明示的に呼び出す必要がありますか? 違いは何ですか?

4

2 に答える 2

4

議論が引数のない super()コンストラクタに関するものである場合、違いはありません。

Java はsuper()、明示的に呼び出されない場合、すべての基本クラス コンストラクターを暗黙的に呼び出します。Java は常にスーパークラスの引数なしコンストラクターのみを呼び出すことを忘れないでください。

場合によっては、開発者として、引数ベースのスーパー コンストラクターを呼び出したいことがあります。そのような場合、引数ベースのスーパー コンストラクターを明示的に呼び出す必要があります。super(arg1, arg2, ...)

IMO、super()ロジックに影響を与えず、読みやすさも向上しないため、引数のないコンストラクターの呼び出しは避けてください。

于 2013-09-12T03:32:00.773 に答える