現在Javaを学習中です。以下のコードを見て:出力javaサブクラスは同じスーパークラスフィールドオブジェクトを使用しますか
package classtest1;
class ClassSuper
{
public Object myObject = new Object();
public ClassSuper(){}
}
public class ClassTest1 extends ClassSuper
{
public ClassTest1()
{
System.out.println("this.myObject.equals(super.myObject) return: " + this.myObject.equals(super.myObject));
System.out.println("this.myObject == (super.myObject) return: " + this.myObject == (super.myObject));
}
public static void main(String[] args)
{
ClassTest1 myClassTest1 = new ClassTest1();
}
}
以下の通りです:
run:
this.myObject.equals(super.myObject) return: true
false
BUILD SUCCESSFUL (total time: 0 seconds)
私の質問は、なぜ同じではありません「==」に等しいと、ということでしょうか? "=="を使用すると、なぜfalseを出力するのですか?サブクラスは新しいコピーmyObjectをメモリに作成しますか?
'==' チェック等しい値を確認しています。 – Darshit
[.equals()と==演算子で2つのオブジェクトを比較する]の複製が可能です。(0120-1738742/compare-two-objects-with-equals-and-operator) – hotzst
'.equals ()がテストに合格すると、それは2つが論理的に同等であることを意味します。これはクラス階層から期待されるものです。 –