基類和接口

接口在java編程中有極大的作用,對團隊來說,更是不可或缺的部分。
接口中的方法往往是“啞”方法,即,在接口中,只有方法的聲明,沒有方法的具體實現。

接口和內部類爲我們提供了一種將接口與實現分離的更加結構化的方法。
複用代碼的其中一種形式是 客戶端程序員遵循該接口來編寫他們自己的類。
關鍵字的使用以及語法:


Java中的多重繼承

interface CanFight{
void fight();
}
interface CanSwim{
void swim();
}
interface CanFly{
void fly();
}
class ActionCharacter{
public void fight{}
}
class Hero extends ActionCharacter implements CanFight,CanSwim,CanFly{
public void swim(){}
public void fly(){}
}


CanFight 接口與ActionCharacter類中的fight()方法的特徵簽名是一樣的,而且,在Hero中並沒有提供fight()的定義。可以擴展接口,但是得到的只是另一個接口。當想創建對象時,所有的定義首先必須都存在。及時Hero沒有顯式的提供fight()的定義,其定義也因ActionCharacter而隨之而來,這樣就使得創建Hero對象成爲了可能。
(例子摘自 P179)


“確定接口是理想選擇,因而應該總是選擇接口而不是具體的類”。
對於創建類,幾乎在任何時刻,都可以替代爲創建一個接口和一個工廠(工廠在p187)。
任何抽象性都應該是應真正的需求而產生的。當需要時,你應該重構接口而不是導出添加額外級別的間接性,並由此帶來的額外的複雜性。
最恰當的原則是選擇類而不是選擇接口。從類開始,如果接口的必須行變得非常明確,那麼就進行重構。接口是一種重要的工具,但是最好不要濫用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章