オブジェクトを構築するとき、コンストラクターにsuper()
記述してもしなくても、 が呼び出されることを学びました。super()
しかし、一部のコードでは、メソッドが明示的に呼び出されていることに気付きました。super()
コンストラクターで暗黙的または明示的に呼び出す必要がありますか? 違いは何ですか?
質問する
1317 次
2 に答える
4
議論が引数のない super()
コンストラクタに関するものである場合、違いはありません。
Java はsuper()
、明示的に呼び出されない場合、すべての基本クラス コンストラクターを暗黙的に呼び出します。Java は常にスーパークラスの引数なしコンストラクターのみを呼び出すことを忘れないでください。
場合によっては、開発者として、引数ベースのスーパー コンストラクターを呼び出したいことがあります。そのような場合、引数ベースのスーパー コンストラクターを明示的に呼び出す必要があります。super(arg1, arg2, ...)
IMO、super()
ロジックに影響を与えず、読みやすさも向上しないため、引数のないコンストラクターの呼び出しは避けてください。
于 2013-09-12T03:32:00.773 に答える