php抽象類和接口的使用場景 接口和抽象類的主要區(qū)別?
接口和抽象類的主要區(qū)別?Java提供并支持抽象類和接口的創(chuàng)建。它們有一些共同點,但區(qū)別在于接口中的所有方法都是抽象的。抽象類可以包含抽象方法和非抽象方法。類可以實現(xiàn)許多接口,但它只能繼承一個抽象類。如
接口和抽象類的主要區(qū)別?
Java提供并支持抽象類和接口的創(chuàng)建。
它們有一些共同點,但區(qū)別在于接口中的所有方法都是抽象的。抽象類可以包含抽象方法和非抽象方法。類可以實現(xiàn)許多接口,但它只能繼承一個抽象類。如果一個類要實現(xiàn)一個接口,它必須實現(xiàn)接口聲明的所有方法。但是,一個類不能實現(xiàn)一個抽象類聲明的所有方法。當然,在這種情況下,類也必須聲明為抽象的。抽象類可以實現(xiàn)接口而不提供接口方法實現(xiàn)。默認情況下,java接口中聲明的變量是final。抽象類可以包含非最終變量。java接口中的成員函數(shù)默認為public。抽象類成員函數(shù)可以是私有的、受保護的或公共的。接口是絕對抽象的,不能實例化。抽象類不能實例化,但如果它包含main方法,則可以調(diào)用它。您還可以參考jdk8中抽象類和接口之間的區(qū)別
1。抽象類可以有構(gòu)造方法,但接口不能有構(gòu)造方法。
2. 抽象類中可以有普通成員變量,但接口中沒有普通成員變量
3。抽象類可以包含靜態(tài)方法,但接口不能包含靜態(tài)方法
4。一個類可以實現(xiàn)多個接口,但它只能繼承一個抽象類。
5. 接口可以多次實現(xiàn),抽象類只能單獨繼承
6。如果抽象類實現(xiàn)接口,接口中的方法可以作為抽象方法映射到抽象類,而不需要實現(xiàn),接口中的方法可以在抽象類的子類中實現(xiàn)