java不允許多重繼承,也就是說一個子類只能有一個父類,
Son extends FatherA,FatherB 是錯誤的
爲了彌補這點不足,java允許實現多個接口,
Son extends FatherA implements AnotherFatherA,AnotherFatherB是允許的
接口中的方法沒有實體,就這一點而言就相當於abstact class,
如:
interface ainter{
void dosth(int i);
}
ainter是一個接口,它僅僅聲明瞭一個方法dosth,而沒有具體實現它
class aclass implements ainter
{
public void dosth(int i) {
//在這裏你可以不作任何處理,但是必須實現方法體
}
}
aclass實現了ainter這個接口,因此它必須實現ainter中的方法dosth
另,abstact class示例:
abstract class Canine {
public abstract String speak();
}
就像接口一樣,它沒有方法實體
接口就是給出一些沒有內容的方法,類似於C++中的虛類。到具體用的時候再由用的方法自己定義內容,要注意的是想用接口必須實現接口的所
有方法。
其實是因爲java不支持多繼承才產生了接口
接口是用來規範類的
它可以避免類在設計上的不一致
這在多人合作的開發中猶爲重要
就比如接口中有A方法
那麼實現這個接口就必須實現A方法
這就形成了一種規範
也就是說,A繼承了B,但卻想使用C的一個方法,但又不能再繼承,所以就使用了C的接口。