抽象類(abstract)
描述一個事物,卻沒有足夠的信息,這時就將這個事物稱為抽象事物
特點:
1、抽象方法一定定義在抽象類中,需要抽象關(guān)鍵字定義。
2、抽象類不能實例化。不能用new關(guān)鍵字創(chuàng)建對象。
3、只有子類覆蓋了所有的抽象方法后,子類具體化,子類就可以創(chuàng)建對象。
如果沒有覆蓋所有的抽象方法,子類還是一個抽象類。抽象類是不斷的 向上抽取而得來的。抽取了方法的聲明而不確定具體的方法內(nèi)容,由不同的子類來完成具體的內(nèi)容
接口(interface)
- 接口中常見的成員有兩種:1、全局常量 2、抽象方法;成員都是public修飾
- 特點:
1、接口不可以實例化。
2、需要覆蓋了接口中的所有的抽象方法的子類,才可以實例化。
否則該子類還是一個抽象類
3、接口是用來被實現(xiàn)的(implements)
JAVA中通過接口來解決多繼承的問題(方法的主體不同),即implements(將多繼承轉(zhuǎn)化為多實現(xiàn))
避免了單繼承的局限。對一個子類進行擴展功能時,可以使用該類implements一個接口。
繼承是為了獲取體系的基本功能。想要擴展功能可以通過實現(xiàn)接口完成
接口與接口之間的關(guān)系為繼承關(guān)系,而且可以多繼承。
為了方便創(chuàng)建inter接口的子類對象,可以用一個類先把接口中的所有方法都空實現(xiàn)。該類創(chuàng)建對象沒有意義,所以可以將該類抽象。
接口的思想
1、接口出現(xiàn)擴展了功能
2、接口其實就是暴露出來的規(guī)則
3、接口的出現(xiàn)降低了耦合性。解耦抽象類與接口
類用于描述事物共性的基本功能,用class定義父類,即抽象類
接口用于定義的都是事物的額外功能
區(qū)別:
1、類與類之間 繼承關(guān)系。 is a
類與接口之間 實現(xiàn)關(guān)系。like a
2、抽象類中可以定義抽象和非抽象的方法,子類可以直接使用或者覆蓋使用
接口中定義都是抽象方法,必須實現(xiàn)才能使用。