【本節目标】
通過閱讀本節内容,你将認識到Object類在多态性中扮演的重要角色,并能夠通過覆寫toString()方法實作擷取對象資訊的功能。
Object類的主要特點是可以解決參數的統一問題,也就是說使用Object類可以接收所有的資料類型。
Object類簡介
在Java之中隻有一個類是不存在有繼承關系的,那麼這個類就是Object,也就是說所有的類預設情況下都是Object子類。以下兩種類的定義效果完全相同:
class Person {} //一個類
class Person extends Object {}
在Object類設計的時候考慮到了所有繼承的問題,是以該類提供有無參構造方法,這樣所有的類在定義時即便不知道Object類的存在也不會出現構造方法調用失敗的文法錯誤。
那麼既然Object類是所有類的父類,那麼這種情況下就可以使用Object類接收所有的子類對象。
範例:觀察Object類接收所有子類對象
class Person {}
public class JavaDemo{
public static void main(String args[]) {
Object obj = new Person() ; //向上轉型
if (obj instanceof Person) {
Person per = (Person) obj;
System.out.println(“Person對象向下轉型執行完畢”) ;
}
}
}
如果一個程式的方法要求可以接收所有類對象的時候就可以利用Object實作處理。但是還有一點需要注意,在Java程式之中對于所有的引用資料類型實際上都可以使用Object類進行接收,包括數組也可以。
範例:使用Object類接收數組
public class JavaDemo{
public static void main(String args[]) {
Object obj = new int [] {1,2,3} ; //向上轉型
if (obj instanceof int []) { //是否為整型數組
int data [] = (int []) obj ; //向下轉型
for (int temp : data) {
System.out.println(temp + “、”) ; //執行結果:1、2、3、
}
}
}
}
Object還一個萬能資料類型,它更加适合于進行程式的标準設計。
擷取對象資訊:toString()
Object雖然是一個類,但是這個類本身也是提供有一些處理方法的。在Object類之中提供有一個“toString()”的方法,該方法可以擷取一個對象的完整資訊:public String toString()。
範例:觀察預設的toString()使用
class Person {}
public class JavaDemo{
public static void main(String args[]) {
Person per = new Person() ;
System.out.println(per) ;
System.out.println(per.toString()) ; //Object類繼承而來
}
}
可以發現在之前進行對象直接輸出的時候所調用的方法就是toString()方法,是以這個方法調用與不調用的效果是一樣的。是以在以後的開發之中對象資訊的擷取可以直接覆寫此方法。
範例:覆寫toString()方法
class Person {
private String name ;
private int age ;
public Person (String name , int age ) {
this.name = name ;
this.age = age ;
}
@Override
public String toString() {
return “姓名:” + this.name + “、年齡:” + this.age ;
}
}
public class JavaDemo{
public static void main(String args[]) {
Person per = new Person(“張三” , 20) ;
System.out.println(per) ;
}
}
以後在編寫簡單Java類的過程之中隻需要覆寫toString()方法即可。
想學習更多的Java的課程嗎?從小白到大神,從入門到精通,更多精彩不容錯過!免費為您提供更多的學習資源。
本内容視訊來源于
阿裡雲大學 下一篇:比較無處不在-靈活覆寫equals方法 | 帶你學《Java面向對象程式設計》之五十一 更多Java面向對象程式設計文章檢視此處