關于接口、繼承,想大家都不陌生,抽象類也好,接口也好,繼承也罷,包括上1篇介紹的方法重寫,都能做到:1個類實現另外一個類的內容(方法、屬性)。但他們有甚么區分呢???
抽象類:
抽象類通常代表1個抽象概念,它提供1個繼承的動身點,當設計1個新的抽象類時,1定是用來繼承的。
抽象類不能實例化,抽象方法是必須被子類重寫的方法,如果類中包括抽象方法,那末類就必須定義為抽象類,不論是不是還包括其他1般方法。
子類是否是必須重寫抽象類的所有方法呢?
如果子類還堅持抽象就不1定要實現所有的抽象方法;
如果子類不愿再抽象了,而是具體類,就必須實現所有的抽象方法。
抽象類的出現,是為了滿足:父類實例化沒成心義的情況。如父類是動物,但動物實例化是沒成心義的。但我們還需要用它的方法,這時候抽象類就派上用處了,抽象類不能實例化,但方法可以被使用。
抽象類下,還可以有抽象類。在1個以繼承關系構成的等級結構里面,樹葉節點應當是具體類,而樹枝節點均應當是抽象類。
比如:
接口:
接口是把隱式公式方法和屬性組合起來,以封裝特定功能的1個集合。1旦類實現了接口,類就能夠支持接口所指定的所有屬性和成員。實現接口的類必須實現接口中的所有方法和屬性。
比如:
人將實現吃喝玩樂所有方法。
繼承:
繼承代表的是1種“是”的關系,如果A是B,則A可以繼承B。繼承者可以理解為是對被繼承者的特殊化,它除具有繼承者的特性外,還具有自己獨有的個性。
子類要繼承父類的所有特性,但還可以定義新的特性。即子類擴大了父類沒有的屬性和功能。除此,子類還可以利用方法重寫,來以自己的方式實現父類的功能。
抽象類&&接口
1、抽象類可以給出1些成員的實現,接口卻不包括成員的實現;
2、抽象類的抽象成員可被子類部份實現,接口的成員需要實現類完全實現;
3、1個類只能繼承1個抽象類,但可實現多個接口;
4、抽象類是對類的抽象,接口是對行動的抽象(接口是對類的局部(行動)進行抽象;
5、對1些相似的類對象,用繼承抽象類,如果行動逾越不同類的對象,可以使用接口;
6、抽象類是從子類中發現公共的東西,泛化出父類,然后子類繼承父類,而接口是根本 不知子類的存在,方法如何實現還不肯定,預先定義的。
我認為:繼承是抽象類、接口得以實現的基礎,它們利用的都是繼承的思想,它們的出現是為了滿足不同的繼承情況。
下一篇 簡單的辦法安裝JDK