2017-05-17 13 views
-9

スーパークラスのコンストラクタをパラメータ化した場合、スーパークラスのコンストラクタを呼び出す理由スーパークラスのコンストラクタを呼び出す必要がある理由は何ですか。 ?Javaのスーパークラスとサブクラス

最初の画像はエラーのない正しい形式です。

Image 1

第二の画像は、それがエラーを有している正しい形式ではありません。

Image 2

+5

テキスト情報を伝達するために画像を使用しないでください。質問自体に詳細を書いてください。 – Kayaman

+0

私は初心者のためのJavaについての本はあなたを助けると思う –

+0

明示的にスーパー(...)を呼び出さないと、no-argsスーパー()がサブクラスのコンストラクタの最初のステートメントとして自動的に呼び出されます。ただし、スーパークラスの引数なしのコンストラクタを指定していないため、そのようなコンストラクタを呼び出すことはできません。また、no-argsコンストラクタは、他のコンストラクタが定義されていない場合にのみ、スーパークラスに自動的に作成されることに注意してください。 – mdewit

答えて

0

サブクラスのインスタンスであるオブジェクトは、スーパークラスの一部で構成され、「上」(すべてのメンバ変数とスーパークラスのメソッド)と、のサブクラス部分(メンバ変数とサブクラスのメソッド)。

サブクラスのインスタンスを作成すると、オブジェクトのスーパークラス部分が最初に初期化されます。スーパークラスに引数が必要なコンストラクタがある場合、サブクラスコンストラクタはこれらの引数をスーパークラスコンストラクタに渡す必要があります。 super(...)に、サブクラスのコンストラクタで適切な引数を指定して呼び出します。

このチュートリアル:Oracle Java Tutorials - Using the Keyword superを参照してください。

関連する問題