軟件 : 互聯網 > 抽象類
目錄
No. 1
  抽象類與接口緊密相關,它們不能實例化,並且常常部分實現或根本不實現。抽象類和接口之間的一個主要差別是:類可以實現無限個接口,但僅能從一個抽象(或任何其他類型)類繼承。從抽象類派生的類仍可實現接口。可以在創建組件時使用抽象類,因為它們使您得以在某些方法中指定不變級功能,但直到需要該類的特定實現之後纔實現其他方法。抽象類也製定版本,因為如果在派生類中需要附加功能,則可以將其添加到基類而不中斷代碼。
  在實現抽象類時,必須實現該類中的每一個抽象方法,而每個已實現的方法必須和抽象類中指定的方法一樣,接收相同數目和類型的參數,具有同樣的返回值。
  抽象類不能被實例化,也就是不能用new關鍵字去産生對象
  抽象方法衹需聲明,而不需實現
  抽象類的子類必須覆蓋所有的抽象方法後才能被實例化,否則這個子類還是個抽象類
No. 2
  抽象類與接口緊密相關。然接口又比抽象類更抽象,這主要體現在它們的差別上:1)類可以實現無限個接口,但僅能從一個抽象(或任何其他類型)類繼承,從抽象類派生的類仍可實現接口,從而得出接口是用來解决多重繼承問題的。2)抽象類當中可以存在非抽象的方法,可接口不能且它裏面的方法衹是一個聲明必須用public來修飾沒有具體實現的方法。3)抽象類中的成員變量可以被不同的修飾符來修飾,可接口中的成員變量默認的都是靜態常量(static final)。4)這一點也是最重要的一點本質的一點"抽象類是對象的抽象,然接口是一種行為規範"。
  以上是它們本身的異同,下面再來從實際應用講講它們的異同!
  不同之處:
  1、定義
  抽象類表示該類中可能已經有一些方法的具體定義,但是接口就僅僅衹能定義各個方法的界面(方法名,參數列表,返回類型),並不關心具體細節。
  1、用法
  1)在繼承抽象類時,必須覆蓋該類中的每一個抽象方法,而每個已實現的方法必須和抽象類中指定的方法一樣,接收相同數目和類型的參數,具有同樣的返回值,這一點與接口相同。
  2)當父類已有實際功能的方法時,該方法在子類中可以不必實現,直接引用的方法,子類也可以重寫該父類的方法(繼承的概念)。
  3)而實現 (implement)一個接口(interface)的時候,是一定要實現接口中所定義的所有方法,而不可遺漏任何一個。
  4)另外,抽象類不能産生對象的,但可以由它的實現類來聲明對象。
  有鑒於此,在實現接口時,我們也常寫一個抽象類,來實現接口中的某些子類所需的通用方法,接着在編寫各個子類時,即可繼承該抽象類來使用,省去在每個都要實現通用的方法的睏擾。
英文解釋
  1. :  abstract class