Ich habe einige der zugehörigen Beiträge zu diesem Thema gelesen und ich habe gelernt, dass wenn wir eine Variable mit demselben Namen in einer Unterklasse erstellen, dies Verbergen genannt wird.Auswirkungen des Typs "Gegebener Datentyp" Übergeordnete Membervariablen
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); } }
Wenn I instanziieren Klasse B mit Typ-A und die Druckelementdaten A a = new B(); System.out.printin (A.I.) Der Ausgang 10 ist (der Wert der übergeordneten Klasse Elementdaten).
Aber wenn ich instanziiert Klasse B als Typ B, B a = new B(); System.out.println (a.i) ist 12. (Der Wert der übergeordneten Klassenmitgliedsdaten)
Ich würde gerne wissen, wie sie unterschiedlich sind.
sehr eng schließen Frage https://StackOverflow.com/Questions/15513467/Polymorphism-with-Instance-Variables – agurylev