想在Java中聲明和定義接口怎么實(shí)現(xiàn)?
來(lái)源傳智教育2022年03月17日 11時(shí)27分11秒
假設(shè)有一個(gè)抽象類的所有方法都是抽象的,直接定義這個(gè)類為接口就行。接口也可算作一種特殊的類,它不能包含普通方法,由全局常量和公共的抽象方法組成。
在JDK8之前接口是由全局常量和抽象方法組成的,且接口中的抽象方法不允許有方法體JDK8對(duì)接口進(jìn)行了重新定義,接口中除了抽象方法外,還可以有默認(rèn)方法和靜態(tài)方法(也稱類方法),默認(rèn)方法使用defaut修飾,靜態(tài)方法使用static修飾,且這兩種方法都允許有方法體。
接口使用interface關(guān)鍵字聲明,語(yǔ)法格式如下:
在上述語(yǔ)法中,“extends接口1,接口2...”表示一個(gè)接口可以有多個(gè)父接口,父接口之間用逗號(hào)分隔。Java使用接口的目的是克服單繼承的限制,因?yàn)橐粋€(gè)類只能有一個(gè)父類,而一個(gè)接口可以同時(shí)繼承多個(gè)父接口。接口中的變量默認(rèn)使用“public static final”進(jìn)行修飾,即全局常量。接口中定義的方法默認(rèn)使用“publicabstract"進(jìn)行修飾,即抽象方法。如果接口聲明為publie,則接口中的變量和方法全部為public。
注意:
有時(shí)候遇到Java程序員寫接口方法時(shí)省略了publie,有很多讀者認(rèn)為它的訪問(wèn)權(quán)限是default,這實(shí)際上是錯(cuò)誤的。接口中方法的訪問(wèn)權(quán)限永遠(yuǎn)是public.與此類似而不在于寫不寫權(quán)限,在接口中定義常量時(shí),可以省略前面的"pubic static final”"",此時(shí),接口會(huì)默認(rèn)為常量添加“pubic satic fnal"。
最新問(wèn)答
- 2022年06月30日黑盒測(cè)試與白盒測(cè)試的區(qū)別是啥?
- 2022年06月30日Hive的安裝模式有幾種?
- 2022年06月29日Flume系統(tǒng)要求是什么?
- 2022年06月29日數(shù)據(jù)發(fā)布與訂閱有哪些主要應(yīng)用場(chǎng)景?
- 2022年06月29日Zookeeper集群角色有哪三種?
- 2022年06月29日hadoop1.x和hadoop2.x的區(qū)別是什么,做了哪些改進(jìn)?
- 2022年06月28日znode有哪兩種節(jié)點(diǎn)?
- 2022年06月28日非全新集群選舉的過(guò)程是什么樣的?
- 2022年06月28日applicationmaster是什么?
- 2022年06月28日yarn的工作流程是什么?
相關(guān)問(wèn)答
- 2022年06月02日本科計(jì)算機(jī)專業(yè)畢業(yè),想在廣州參加Java培訓(xùn),有什么需要注意的嗎?
- 2022年06月02日廣州java培訓(xùn)價(jià)格大概多少?
- 2022年06月02日在廣州想報(bào)名一家Java培訓(xùn)機(jī)構(gòu),怎么選擇?
- 2022年06月01日error類和exception類有什么區(qū)別?
- 2022年06月01日Java中的繼承概念是什么?
- 2022年06月01日面向?qū)ο蟮娜筇匦允鞘裁矗?/a>
- 2022年06月01日java中類與對(duì)象的關(guān)系是什么
- 2022年05月31日java的數(shù)組排序方法是什么?
- 2022年05月24日Java中二進(jìn)制轉(zhuǎn)十進(jìn)制的方法是什么?
- 2022年05月24日零基礎(chǔ)想學(xué)Java很難嗎?