スーパークラスコンストラクターを明示的に呼び出す必要があるのはいつですか?

jhlu87:

つまり、スーパークラスを拡張するサブクラスがあるとします。super()スーパークラスコンストラクターを実行するには、どのシナリオで明示的に入力する必要がありますか?

私は抽象クラスに関する本の例を見ています。それらが非抽象サブクラスでそれを拡張すると、サブクラスのデフォルトコンストラクターは空白になり、スーパークラスのデフォルトコンストラクターが呼び出されることを示すコメントがあります。同時に、誰かの問題が明示的にを呼び出さなかった例もここで見ましたsuper()

スーパークラスのデフォルト/非デフォルトコンストラクターをサブクラスのデフォルト/非デフォルトコンストラクターから呼び出すこととの違いはありますか?

ジョン・スキート:

あなたは決して必要ない

super();

他に何も指定しない場合は、このようになります。次の場合にのみ、呼び出すコンストラクタを指定する必要があります。

  • パラメータを持つスーパークラスコンストラクタを呼び出したい
  • スーパークラスコンストラクターではなく、同じクラスの別のコンストラクターにチェーンしたい

あなたはそれを主張します:

同時に、誰かの問題が明示的にsuper()を呼び出していなかったインスタンスもここで見ました。

例を挙げていただけますか?それがどのようにして可能か想像できません...

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

MSILで親コンストラクターを明示的に呼び出す必要があるのはなぜですか?

分類Dev

C ++およびJavaでのコンストラクター呼び出しに明示的な型パラメーターが必要なのはなぜですか?

分類Dev

暗黙のスーパーコンストラクターPerson()は未定義です。別のコンストラクターを明示的に呼び出す必要がありますか?

分類Dev

なぜreactクラスコンポーネントは常にコンストラクターでsuper(props)を呼び出す必要があるのですか?

分類Dev

スーパークラスコンストラクターの呼び出しは、コンストラクター本体に含める必要があります

分類Dev

明示的なデストラクタ呼び出しを行う必要があるのはいつですか?

分類Dev

コンストラクターを呼び出すときは、どの程度明示的にする必要がありますか?

分類Dev

暗黙のスーパーコンストラクターclassA()を解決する方法が表示されません。別のコンストラクターを明示的に呼び出す必要がありますか?

分類Dev

コンストラクタから `super`を呼び出す必要があるのはいつですか?

分類Dev

Java。暗黙的なスーパーコンストラクターEmployee()は未定義です。別のコンストラクターを明示的に呼び出す必要があります

分類Dev

Javaエラー:暗黙のスーパーコンストラクターが定義されていません。別のコンストラクターを明示的に呼び出す必要があります

分類Dev

コンストラクターの外部でスーパーコンストラクターを呼び出すにはどうすればよいですか?

分類Dev

明示的なコンストラクターを明示的に呼び出さずにマップを初期化するにはどうすればよいですか?

分類Dev

ベース仮想デストラクタを明示的に呼び出す必要がありますか?

分類Dev

ベース仮想デストラクタを明示的に呼び出す必要がありますか?

分類Dev

ベース仮想デストラクタを明示的に呼び出す必要がありますか?

分類Dev

オブジェクトをパラメーターとして渡すときに、デストラクタが呼び出されているのにコンストラクションが呼び出されていないのはなぜですか?

分類Dev

C ++ 1つのパラメーターを持つ派生クラスコンストラクターから2つのパラメーターを持つスーパークラスコンストラクターを呼び出すにはどうすればよいですか?

分類Dev

クラスコンストラクターで呼び出されるメソッドがfinalである必要があるのはなぜですか?

分類Dev

mustの1つを明示的にすることにより、あいまいなコンストラクターへのこの呼び出しを解決するにはどうすればよいですか?

分類Dev

クラスのコンストラクターパラメーターが同じように見えないのに、「 ''のコンストラクターの呼び出しがあいまいです」というエラーがありますか?

分類Dev

C ++は、初期化リストの外部で親コンストラクターを明示的に呼び出します

分類Dev

デストラクタができるのに、コンストラクタを明示的に呼び出せないのはなぜですか?

分類Dev

コンストラクターの最初の行でparent :: __construct()を呼び出す必要がありますか?

分類Dev

コンストラクターで常にこれを呼び出す必要がありますか?

分類Dev

(N)RVOがある場合、moveコンストラクターが実際に呼び出されるのはいつですか?

分類Dev

暗黙のスーパーコンストラクターNum()は、デフォルトコンストラクターに対して未定義です。明示的なコンストラクターを定義する必要があります。この背後にあるロジックは何ですか

分類Dev

宣言子なしでコンストラクターを明示的に呼び出す

分類Dev

コピーコンストラクターを明示的に非インラインとして宣言する必要があるのはなぜですか?

Related 関連記事

  1. 1

    MSILで親コンストラクターを明示的に呼び出す必要があるのはなぜですか?

  2. 2

    C ++およびJavaでのコンストラクター呼び出しに明示的な型パラメーターが必要なのはなぜですか?

  3. 3

    暗黙のスーパーコンストラクターPerson()は未定義です。別のコンストラクターを明示的に呼び出す必要がありますか?

  4. 4

    なぜreactクラスコンポーネントは常にコンストラクターでsuper(props)を呼び出す必要があるのですか?

  5. 5

    スーパークラスコンストラクターの呼び出しは、コンストラクター本体に含める必要があります

  6. 6

    明示的なデストラクタ呼び出しを行う必要があるのはいつですか?

  7. 7

    コンストラクターを呼び出すときは、どの程度明示的にする必要がありますか?

  8. 8

    暗黙のスーパーコンストラクターclassA()を解決する方法が表示されません。別のコンストラクターを明示的に呼び出す必要がありますか?

  9. 9

    コンストラクタから `super`を呼び出す必要があるのはいつですか?

  10. 10

    Java。暗黙的なスーパーコンストラクターEmployee()は未定義です。別のコンストラクターを明示的に呼び出す必要があります

  11. 11

    Javaエラー:暗黙のスーパーコンストラクターが定義されていません。別のコンストラクターを明示的に呼び出す必要があります

  12. 12

    コンストラクターの外部でスーパーコンストラクターを呼び出すにはどうすればよいですか?

  13. 13

    明示的なコンストラクターを明示的に呼び出さずにマップを初期化するにはどうすればよいですか?

  14. 14

    ベース仮想デストラクタを明示的に呼び出す必要がありますか?

  15. 15

    ベース仮想デストラクタを明示的に呼び出す必要がありますか?

  16. 16

    ベース仮想デストラクタを明示的に呼び出す必要がありますか?

  17. 17

    オブジェクトをパラメーターとして渡すときに、デストラクタが呼び出されているのにコンストラクションが呼び出されていないのはなぜですか?

  18. 18

    C ++ 1つのパラメーターを持つ派生クラスコンストラクターから2つのパラメーターを持つスーパークラスコンストラクターを呼び出すにはどうすればよいですか?

  19. 19

    クラスコンストラクターで呼び出されるメソッドがfinalである必要があるのはなぜですか?

  20. 20

    mustの1つを明示的にすることにより、あいまいなコンストラクターへのこの呼び出しを解決するにはどうすればよいですか?

  21. 21

    クラスのコンストラクターパラメーターが同じように見えないのに、「 ''のコンストラクターの呼び出しがあいまいです」というエラーがありますか?

  22. 22

    C ++は、初期化リストの外部で親コンストラクターを明示的に呼び出します

  23. 23

    デストラクタができるのに、コンストラクタを明示的に呼び出せないのはなぜですか?

  24. 24

    コンストラクターの最初の行でparent :: __construct()を呼び出す必要がありますか?

  25. 25

    コンストラクターで常にこれを呼び出す必要がありますか?

  26. 26

    (N)RVOがある場合、moveコンストラクターが実際に呼び出されるのはいつですか?

  27. 27

    暗黙のスーパーコンストラクターNum()は、デフォルトコンストラクターに対して未定義です。明示的なコンストラクターを定義する必要があります。この背後にあるロジックは何ですか

  28. 28

    宣言子なしでコンストラクターを明示的に呼び出す

  29. 29

    コピーコンストラクターを明示的に非インラインとして宣言する必要があるのはなぜですか?

ホットタグ

アーカイブ