Javaでは、オブジェクト参照が参照するインスタンスにどのように関連していますか ? 私は本当に面倒なことに遭遇し、それを深く理解したいと思っています。次のシナリオでは、サブクラスのshine()がスーパークラスのオーバーライド(通常)ですが、サブクラスでNEWが呼び出されたにもかかわらずスーパークラスの名前プロパティが使用されていますこれを理解します?継承シナリオでの参照とオブジェクトの関係
class Father {
public String name = "John Senior";
public void shine() {
System.out.println(name + "'s shining");
}
}
//Subclass
class Son extends Father {
public String name = "John Junior";
public void shine() {
System.out.println(name + "'s shining");
}
}
//Demo Class
class Test {
public static void main(String[] args) {
Father f1 = new Son();
System.out.println(f1.name);
f1.shine();
}
}
//program output
/*John Senior
John Junior's shining */
このコードはコンパイルされません。メインには「s1」はありません。また、出力をポストする。 –
@AbhijitSarkarあなたは正しいです。それはタイプミスでした。 – makassi