2017-08-03 4 views
0

私はjavaを初めて使い、動的ディスパッチについて読んでいました。私はそのプログラムを試しましたが、私が得たアウトプットは予想外でした。したがって、次のコードでは、ParentクラスとChildクラスの2つのクラスを作成し、ChildクラスではChildクラスのオブジェクトを作成し、それをParentクラス型の変数で参照しました。その変数を使ってi(int型の両方のクラスのインスタンス変数)の値を出力すると、親クラスの値が得られましたが、子クラスにあるiの値が出力されます。誰もこれをクリアしてもらえますか?親クラスの値が可変である理由は、出力として表示されます

` 
    class Parent 
    { 
     int i=10; 
    } 
    class Child extends Parent 
    { 
     int i=20; 
     public static void main(String ar[]) 
     { 
      Parent obj= new Child(); 
      System.out.println(obj.i); 
     } 
    } 

` 
+0

をライン '親OBJ場合、それは=、親の値を印刷する必要がありますnew Child(); 'が' Child obj = new Child(); '行に変更されました。 –

+0

しかし、その背後にある理由 –

答えて

関連する問題