Javaフィールドの変数の継承に関する問題を調べたいと思います。ここでのコードセグメントは、次のとおりです。子は独自のフィールド変数を持つか、継承を通じて親変数を共有しますか?
//parent
public class Parent {
protected int a = 0;
}
//son
public class Son extends Parent{
public void demo(){
a = 1;
System.out.println(super.a);
}
public static void main(String[] args){
Son son = new Son();
son.demo();
}
}
は出力:
1
期待:私のコードで
0
を子供がフィールド変数a
を継承し、我々はsonA
とフィールドと呼びました親の変数a
はparentA
と呼ばれます。
私の質問は、sonA
とparentA
が同じもの(例:アドレスが0x1234)かどうかです。または2つの異なる変数(例えば、1つのアドレス0x1234別の0x5678)を表すか?
はい、彼らは同じ変数だが含まれていないので、あなたは、最後の行に例外を取得します。それはすべてですか? – shmosel
はい、それは同じものです。基本クラスのメソッドまたは変数を暗黙的にまたは明示的に呼び出すことができます。それでおしまい。 – atiqkhaled
あなたのコードには 'sonA'はありません。 「フィールド」を正しく綴るのに時間と手間をかけることは可能でしょうか?そして意味をなさない小冊子を作ってください。また、コードではないテキストのコード書式は使用しないでください。あなたが何を求めているのか不明です。 – EJP