日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

java中接口和抽象類的區(qū)別,接口與抽象類的區(qū)別

如何理解java的抽象類和接口的區(qū)別?

java中接口和抽象類的區(qū)別,接口與抽象類的區(qū)別


首先,來理解一下抽象類和接口的概念 。眾所周知,Java是面向?qū)ο蟮某绦蛘Z言,而面向?qū)ο笾械乃械膶ο?,大都是通過類來描述的 。相反,并不是所有的類都適合來描述對象,比如抽象類 。抽象類中沒有足夠的信息來描述一個具體的對象,所以它是抽象的 。而接口,是高度抽象類型,是抽象方法的集合,接口并不是類,而是對類的一組需求的描述 。
【java中接口和抽象類的區(qū)別,接口與抽象類的區(qū)別】這些類要遵循接口描述的統(tǒng)一格式來定義 。如果類遵從了某個特定接口,就代表它履行了這項服務(wù) 。然后,來理解一下抽象類和接口的相同點 。其一,都不能被實例化 。其二,接口只有在其實現(xiàn)類實現(xiàn)了其中所有的方法、抽象類的子類也都實現(xiàn)了所有的抽象方法后,才可以被實例化 。再然后,來理解一下抽象類和接口的不同點 。抽象類:abstract關(guān)鍵字修飾抽象方法只有聲明,無方法體只能繼承不能實例化包含抽象方法的類一定是抽象類,但抽象類不一定包含抽象方法抽象類中的抽象方法的修飾符只能是public或者protected,默認為public一個類只能繼承一個抽象類子類繼承抽象類時,必須實現(xiàn)全部的抽象方法,否則也必須為抽象類可以包含成員變量、成員方法、構(gòu)造方法;但是構(gòu)造方法不能用于實例化,只是供子類調(diào)用如抽象類Animal,有成員屬性name、構(gòu)造方法:接口:interface關(guān)鍵字修飾方法只能有聲明,不能有方法體,默認為public abstract 。
JDK1.8之后,可以有default類型的方法,可以有方法體只能實現(xiàn)不能實例化所有方法只能是public abstract 。JDK1.8之后,可以有default類型的方法,可以有方法體一個類可以實現(xiàn)多個接口可以包含變量,但隱式默認為public static finalJDK1.8中的新特性,新增了默認方法(default):允許接口含有非抽象的方法,但必須用default修飾;default方法可以子類調(diào)用,子類也可不比對其實現(xiàn);如子類實現(xiàn)了多個接口,且這些接口均包含有默認方法,則子類必須重寫該默認方法 。
新增了靜態(tài)方法:允許接口使用static關(guān)鍵字修飾方法并提供實現(xiàn),即為靜態(tài)方法;接口的靜態(tài)方法只能通過接口進行調(diào)用,調(diào)用方式為:接口名:方法名 。如接口Climb,通用行為climb:舉個栗子,Cat類繼承Animal、且實現(xiàn)Climb,具有動物特性和攀爬行為:運行一下,看一下調(diào)用順序和結(jié)果 。果然,先調(diào)用了抽象父類的構(gòu)造方法,然后是子類的構(gòu)造方法 。

    推薦閱讀