抽象method & object
[抽象method的好處]
雖然說無法實作出method的內容,但還是可以讓一群subtype擁有共通的協定,讓所有subtype都有所定義的抽象的type
實作時,撰寫抽象的method就如同override過method一樣,只是必須要override過它才行,換句話說,必須以相同signature(名稱,參數)及相容的回傳型別來建構出具體的method,Java非常介意有沒有實作出這些method
抽象的method是沒有內容的,她存在只是為了要標示出polymorphism的部分;雖說可以透過同樣抽象的方法繼續延續抽象的method,但是第一個具體的class必須要把所有抽象的method都實作出來
[Object]
在Java中,所有class都是從Object這個class所extend出來的,Object是所有class的源頭,是所有class的superclass;也就是說,當我自己寫了一class如下:
public class Yap {}
則其所代表的意義為:
public class Yap extends Object{}
[附註]
像ArrayList這個class的許多method都有用到Object這個型別,又因為所有class都是Object的subclass,所以代表ArrayList可以處理任何class