接口勝任作為和外部系統(tǒng)打交道的合同抽象類就不行
3)為什么接口能勝任作為和外部系統(tǒng)打交道的合同而抽象類就不行?(見下面我的山和車,肥皂的例子)【新手可忽略不影響繼續(xù)學習】馬克- to-win:馬克 java社區(qū):防盜版實名手機尾號: 73203。
答:馬克-to-win:假設你用抽象類作為合同,外部系統(tǒng)有個類A,它本來固有就必須得繼承一個類B,現(xiàn)在還必須得繼承你這個抽象類,語法上不允許。反過來,如果你不用抽象類而用接口作為合同,語法上就允許了。馬克-to-win:這樣,接口的多實現(xiàn)性,就等同于另外一句話:“不占繼承資源”。外部系統(tǒng)具有很強的不可預見性,換句話說, 誰知道你過去的類繼承沒繼承其他的類,我不管,反正我的合同內容寫在一個接口中,即使你過去必須繼承一個別的類,也不影響你再多實現(xiàn)一個我,因為我是接口。