先ほど書いた実験コードに、フィールドが継承されるかどうかの検証をしてみます。
以下のようなコードを書いてみました。
public class SuperClassTest3{ public static void main(String[] args) { //オブジェクトのインスンタンスを生成する TestClassChild tcc = new TestClassChild(); System.out.println(tcc.TestA); System.out.println(tcc.TestB); //tcc.PrintTextC(); //tcc.PrintTextP(); } } class TestClassChild extends TestClassParent { TestClassChild() { //引数なしコンストラクタ用 } void PrintTextC() { System.out.print("PrintTextC !! \n"); } void PrintTextP() { System.out.print("PrintTextP オーバーライドテスト !! \n"); } } class TestClassParent { int TestA = 10; int TestB = 20; TestClassParent() { //引数なしコンストラクタ用 } void PrintTextP() { System.out.print("PrintTextP !! \n"); } }
結果は下記のようになり、親クラスのTestA、TestBというフィールドの値を参照することができています。
10 20
■注意■
フィールドとメソッドは継承元(親クラス)のものが参照できますが、コンストラクタは継承されず、使うことができません。