3)為什麼介面能勝任作為和外部系統打交道的合同而抽象類就不行?(見下麵我的山和車,肥皂的例子)【新手可忽略不影響繼續學習】答:馬克-to-win:假設你用抽象類作為合同,(視頻下載) (全部書籍)外部系統有個類A,它本來固有就必須得繼承一個類B,現在還必須得繼承你這個抽象類,語法上不允許。反過來,如 ...
3)為什麼介面能勝任作為和外部系統打交道的合同而抽象類就不行?(見下麵我的山和車,肥皂的例子)【新手可忽略不影響繼續學習】
答:馬克-to-win:假設你用抽象類作為合同,(視頻下載) (全部書籍)外部系統有個類A,它本來固有就必須得繼承一個類B,現在還必須得繼承你這個抽象類,語法上不允許。反過來,如果你不用抽象類而用介面作為合同,語法上就允許了。馬克-to-win:這樣,介面的多實現性,就等同於另外一句話:“不占繼承資源”。外部系統具有很強的不可預見性,換句話說, 誰知道你過去的類繼承沒繼承其他的類,我不管,反正我的合同內容寫在一個介面中,即使你過去必須繼承一個別的類,也不影響你再多實現一個我,因為我是介面。
。。。。。。。。。。。。。。。。。
詳情請進:http://www.mark-to-win.com/index.html?content=JavaBeginner/javaUrl.html&chapter=JavaBeginner/JavaBeginner4_web.html#InterfaceFitForContract