このトピックに関する関連記事のいくつかを学びました。サブクラスで同じ名前の変数を作成すると、それが隠蔽と呼ばれることがわかりました。与えられたデータ型の効果の仕方メンバー変数のオーバーライド
class A { int i = 10; public void printValue() { System.out.print("Value-A"); System.out.println(i); } } class B extends A { int i = 12; public void printValue() { System.out.print("Value-B"); System.out.println(i); } } public class Test { public static void main(String args[]) { A a = new B(); a.printValue(); System.out.print(a.i); } }
Iは、タイプAと印刷部材データ A =新しいB()とクラスBのインスタンスを、 System.out.println(a.i) 出力は10です(親クラスメンバーデータの値)。
しかし、クラスBをB型としてインスタンス化すると、 B a = new B(); System.out.println(a.i)は12です。(親クラスメンバーデータの値)
どのように違うのか知りたいです。
非常に近い質問https://stackoverflow.com/questions/15513467/polymorphism-with-instance-variables – agurylev