簡體   English   中英

關於 Java 中的對象和類等於

[英]Regarding Equals in java with Objects and Classes

讓我們說在java中我有一個A類和一個擴展A的B類。

注意:A 類和 B 類中沒有equals 方法!

我願意:

A a = new B();
B b = new B();
a.equals(b);

結果是假的。 我認為當我們做 equals 時,它會動態地綁定到 a 和 b 上,這將使它成為真的。 或者是因為在編譯時它查看 a 並假設 equals 將是 equals(A) 並且因為它的 a B for B b = new B(); 說是假的? 或者我在兩個方面都錯了?

由於您沒有覆蓋equals那么它將使用Object的方法

如果您查看 Object 的源代碼

 @param   obj   the reference object with which to compare.
 public boolean equals(Object obj) {
    return (this == obj);
 }

顯然ab有不同的引用,因此為false

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM