2016-10-10 6 views
-6

私は2つのJavaクラス、1つはスーパークラス、もう1つは基本クラスです。それは基底クラスがsupeclassを継承することを意味します。私はこの概念を理解することができます。 My Doubtは「基本クラスALONEを実行または実行している場合、スーパークラスは実行されますか?」と表示されます。Java - サブクラスを実行中にスーパークラスが実行されています

私は、スーパークラスが実行されているかどうかを知りたいのですが、私はベースクラスのみを実行します。

+2

クラスは**実行されません**。あなたは**メソッド**を呼び出します。それらについては、**多形性がどのようにキックするかについての**文書化された**ルールがあります。 – GhostCat

+1

私はあなたがオブジェクトオリエンテーションの誤った概念を持っていると思います。クラス(またはむしろオブジェクト)は "実行"されません。オブジェクト上のメソッドを呼び出すことも、属性を設定することもできます。さらに、「実行中...」とは、何らかの並列処理があると考えることを意味します。 – Turing85

+0

インスタンス化(新しい...を呼び出す)の際に、デフォルトのコンストラクタがない場合や、別のインスタンスを使用する場合は、最初にsuper()を使用して明示的に親コンストラクタを呼び出す必要がある場合は、あなたの子クラスのコンストラクタ内のステートメント –

答えて

0

https://www.sitepoint.com/interface-and-inheritance-in-java-inheritance/

基底クラスでも、あなたが考えるスーパーでお読みください。継承とは、同じパッケージ内にある場合、親が持つすべての属性/プロパティ/メソッドと変数を子供が既に持っていることを意味します。子供は自分ができることや、親がそれを継承することによって何ができるのかを行うことができます。したがって、親は、もう親ができることを子供が知っているので、もう実行する必要はありません。

親を実行すると、子は実行されず、親には子属性がありません。 継承を持つ子を親に対して実行すると、親に継承されます。子は親属性で実行されますが、親自体は属性ではありません。

0

デフォルトのコンストラクタが存在しない場合や、別のインスタンスを使用したい場合は、親コンストラクタを明示的に呼び出す必要がある場合は、基本クラスのデフォルト(no args)コンストラクタが呼び出されます。 )を子クラスのコンストラクターの最初のステートメントとして使用します。また、変数インスタンス化と同様に非静的初期化ブロックも呼び出されます。これは、「親クラスを実行する」という名前にできるものです。また、クラスが最初に使用される前に実行される静的初期化ブロックや静的変数の初期化もあります。

関連する問題