天天看點

Object類概述

Object類

在java中,所有類都是直接或者間接的繼承了java.lang.Object類。

Object類相對比較特殊,它是所有類的父類,是java類層中的最高層。當建立一個類的時候,總是在繼承,除非這個類指定了從其他類繼承,否則它就是從java.lang.Object類繼承過來的。也可以認為所有的類都來自于java.lang.Object類,例如String、Integer等。

總結一下:

類都是繼承與Object類,自定義的類也是繼承于Object類,是以在定義類的時候省略了extends Object關鍵字。

Object類概述

在Object類中最常用的兩個方法為equals()和toString()方法,因為所有的類都是Object類的子類,是以任何類都可以重寫Object類中的方法。

注意:

在Object中getClass()、notify()、notifyAll()、wait()等方法不能被方法不能被重寫,以為這些方法被定義為final類型。

getClass()

getClass()方法能夠傳回對象執行時的Class執行個體,通過getClass().getname()方法取得類的名稱。

toString()

toString()方法将一個對象傳回成字元串形式,傳回的是一個String執行個體。平時寫代碼的時候通常會将toString()方法進行重寫,目的是為對象提供一個特定的輸出方式。當這個類轉換為字元串或者是字元串連接配接時,将自動調用重寫之後的toString()方法。

equals()與==

“==”比較的是兩個對象之間的引用是否相等,而equals()方法比較的是兩個對象的實際類容。在自定義的類中,要想真正做到比較兩個對象的内容,需要在自定義類中重寫equals()方法。

instanceof操作符

判斷父類對象是否為子類對象的執行個體,也可以用它來判斷一個執行個體對象是否屬于一個類。

myobject 是某類的對象引用,ExampleClass某個類。

如果傳回值為true,myobject 為ExampleClass的執行個體對象,如果是false,myobject 不是ExampleClass的執行個體對象。

向上轉型

将子類對象指派給父類類型的變量,就叫做向上轉型;由于向上轉型是從一個較具體的的類到較抽象的類的轉換,是以它總是安全的。

向下轉型

越是具體的對象具有的特性越多,越抽象的對象特性越少,在向下轉型的時候一般會出現問題,很可能會抛出ClassCaseException異常。将父類強制轉換成某個子類對象,這種方式也被叫做顯式類型轉換。

注意:程式向下轉型時,必須使用顯式類型轉換,向編輯器指明父類轉換為哪一類型的子類對象。