理論的には、Object クラスはすべてのクラスの親クラスです。つまり、直接的または間接的に java.lang.Object クラスを継承します。すべてのクラスは Object クラスから継承するため、extends Object キーワードは省略されます。
このクラスには主に次のメソッドがあります: toString()、getClass()、equals()、clone()、finalize() の中で、toString()、getClass()、equals が最も重要なメソッドです。
注:
Object クラスの getClass()、notify()、notifyAll()、wait() およびその他のメソッドは最終型として定義されているため、オーバーライドできません。
getClass() メソッドは書き換えられません。呼び出された場合は、通常、getClass().getName() メソッドと組み合わせて使用されます。特定のオブジェクトは特定の出力モードを提供します。この型が文字列または文字列連結に変換されると、オーバーライドされた toString() メソッドが自動的に呼び出されます。
public ObjectInstance{ public String toString(){ return "在"+getClass().getName()+"重写toString()方法" } public static void main(String arg[]){ System.out.println(new ObjectInstance()); } }
equals()メソッド;
class V { } public class OverWriteEquals{ public static void main(String args[]){ String s1="123"; String s2="123"; System.out.println(s1.equals(s2)); V v1= new V(); V v2= new V(); System.out.println(v1.equals(v2)); } }出力結果:
run: true false BUILD SUCCESSFUL (total time: 0 seconds)
この例からわかるように、比較のためにカスタムクラスでequals()メソッドを使用すると、falseが返されます。 equals メソッドのデフォルトの実装は「==」演算子で、オブジェクトの内容を比較するのではなく、2 つのオブジェクトの参照アドレスを比較します。したがって、2 つのオブジェクトの内容を実際に比較したい場合は、カスタム クラスの equals() メソッドをオーバーライドする必要があります。