私はJavaのoopを学びたいと思っています。私はいくつかの例を作るときにスーパーメソッドの使い方を理解するいくつかの問題を見つけます。以下のコードを試してください。Javaでsuper()を使用しますか?
あなたは私になぜsuper();メソッドはsuperClassを参照していませんか?わかりません 。
スーパークラス:
package javaapplication;
public class A {
protected String val;
public A(){
this.val = " Class A ";
}
}
サブクラス
package javaapplication;
public class B extends A {
public B(){
this.val = " Class B";
System.out.println(super.val);
}
}
メインクラス
package javaapplication;
public class JavaApplication {
public static void main(String[] args) {
B a = new B();
}
}
出力:実行:クラスB
を私は "クラスB" を得た理由は?
を印刷しますだけでコンストラクタBから
this.val = Class B
をコメントアウトClass B
として再び値を設定
this.val = Class B
をやっていますか?あなたは何を期待しましたか? 'val'は両方のクラスで同じことです。 – Li357出力として何を期待しましたか? –
[super()をいつ使用するのですか?](http://stackoverflow.com/questions/4090834/when-do-i-use-super) –