在java編程語(yǔ)言中,java接口是一個(gè)抽象類(lèi)型,是抽象方法的集合,接口通常以interface來(lái)聲明的,并且一個(gè)接口可以有多個(gè)方法,那java接口可以實(shí)現(xiàn)方法嗎?下面來(lái)我們就來(lái)給大家講解一下。
不一定,抽象類(lèi)實(shí)現(xiàn)某個(gè)接口,可以不實(shí)現(xiàn)所有接口的方法,可以由它的子類(lèi)實(shí)現(xiàn)。
比如:
public interface A { //定義一個(gè)接口 public void show(); //定義一個(gè)接口方法 }
public abstract class AExtend implements A{//抽象類(lèi)實(shí)現(xiàn)接口A,但可以不實(shí)現(xiàn)show方法,由子類(lèi)再去實(shí)現(xiàn)。
java接口如何實(shí)現(xiàn)?
當(dāng)類(lèi)實(shí)現(xiàn)接口的時(shí)候,類(lèi)要實(shí)現(xiàn)接口中所有的方法。否則,類(lèi)必須聲明為抽象的類(lèi)。
類(lèi)使用implements關(guān)鍵字實(shí)現(xiàn)接口。在類(lèi)聲明中,Implements關(guān)鍵字放在class聲明后面。
實(shí)現(xiàn)一個(gè)接口的語(yǔ)法,可以使用這個(gè)公式:
接口語(yǔ)法:
...implements 接口名稱[, 其他接口名稱, 其他接口名稱..., ...] ...
實(shí)例
MammalInt.java 文件代碼:
public class MammalInt implements Animal { public void eat() { System.out.println("Mammal eats"); } public void travel() { System.out.println("Mammal travels"); } public int noOfLegs() { return 0; } public static void main(String args[]) { MammalInt m = new MammalInt(); m.eat(); m.travel(); } }
以上實(shí)例編譯運(yùn)行結(jié)果如下:
Mammal eatsMammal travels
重寫(xiě)接口中聲明的方法時(shí),需要注意以下規(guī)則:
類(lèi)在實(shí)現(xiàn)接口的方法時(shí),不能拋出強(qiáng)制性異常,只能在接口中,或者繼承接口的抽象類(lèi)中拋出該強(qiáng)制性異常。
類(lèi)在重寫(xiě)方法時(shí)要保持一致的方法名,并且應(yīng)該保持相同或者相兼容的返回值類(lèi)型。
如果實(shí)現(xiàn)接口的類(lèi)是抽象類(lèi),那么就沒(méi)必要實(shí)現(xiàn)該接口的方法。
在實(shí)現(xiàn)接口的時(shí)候,也要注意一些規(guī)則:
一個(gè)類(lèi)可以同時(shí)實(shí)現(xiàn)多個(gè)接口。
一個(gè)類(lèi)只能繼承一個(gè)類(lèi),但是能實(shí)現(xiàn)多個(gè)接口。
一個(gè)接口能繼承另一個(gè)接口,這和類(lèi)之間的繼承比較相似。
這就是java接口實(shí)現(xiàn)的過(guò)程,另外,在 Java 中,接口類(lèi)型可用來(lái)聲明一個(gè)變量,并且接口無(wú)法被實(shí)例化,但是可以被實(shí)現(xiàn)。最后大家如果想要了解更多初識(shí)java知識(shí),敬請(qǐng)關(guān)注賦能網(wǎng)。
本文鏈接:
本文章“java接口可以實(shí)現(xiàn)方法嗎?java接口如何實(shí)現(xiàn)?”已幫助 51 人
免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開(kāi)班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579