java中接口的定义与实现
生活随笔
收集整理的這篇文章主要介紹了
java中接口的定义与实现
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、定義接口
? ? 使用interface來定義一個(gè)接口。接口定義同類的定義類似,也是分為接口的聲明和接口體,當(dāng)中接口體由常量定義和方法定義兩部分組成。定義接口的基本格式例如以下:
[public] [abstract] 方法;
}
修飾符:可選,用于指定接口的訪問權(quán)限,可選值為public。假設(shè)省略則使用默認(rèn)的訪問權(quán)限。
接口名:必選參數(shù),用于指定接口的名稱,接口名必須是合法的Java標(biāo)識(shí)符。普通情況下,要求首字母大寫。
extends 父接口名列表:可選參數(shù),用于指定要定義的接口繼承于哪個(gè)父接口。當(dāng)使用extendskeyword時(shí),父接口名為必選參數(shù)。
方法:接口中的方法僅僅有定義而沒有被實(shí)現(xiàn)。
? ? 與Java的類文件一樣,接口文件的文件名稱必須與接口名同樣。
實(shí)現(xiàn)接口
接口在定義后,就能夠在類中實(shí)現(xiàn)該接口。在類中實(shí)現(xiàn)接口能夠使用keywordimplements,其基本格式例如以下:
[修飾符] class <類名> [extends 父類名] [implements 接口列表]{
}
修飾符:可選參數(shù),用于指定類的訪問權(quán)限,可選值為public、abstract和final。
類名:必選參數(shù),用于指定類的名稱,類名必須是合法的Java標(biāo)識(shí)符。普通情況下,要求首字母大寫。
extends 父類名:可選參數(shù),用于指定要定義的類繼承于哪個(gè)父類。當(dāng)使用extendskeyword時(shí),父類名為必選參數(shù)。
implements 接口列表:可選參數(shù),用于指定該類實(shí)現(xiàn)的是哪些接口。當(dāng)使用implementskeyword時(shí),接口列表為必選參數(shù)。當(dāng)接口列表中存在多個(gè)接口名時(shí),各個(gè)接口名之間使用逗號(hào)分隔。
? ? 在類中實(shí)現(xiàn)接口時(shí),方法的名字、返回值類型、參數(shù)的個(gè)數(shù)及類型必須與接口中的全然一致,而且必須實(shí)現(xiàn)接口中的全部方法。比如,編寫一個(gè)名稱為Cire的類,該類實(shí)現(xiàn)5.7.1節(jié)中定義的接口Calculate,詳細(xì)代碼例如以下:
public class Cire implements CalInterface {public float getArea(float r) {float area=PI*r*r;//計(jì)算圓面積并賦值給變量areareturn area;//返回計(jì)算后的圓面積}public float getCircumference(float r) {float circumference=2*PI*r; //計(jì)算圓周長(zhǎng)并賦值給變量circumferencereturn circumference; //返回計(jì)算后的圓周長(zhǎng)}public static void main(String[] args) {Cire c = new Cire();float f = c.getArea(2.0f);System.out.println(Float.toString(f));} } ? ? ? 在類的繼承中,僅僅能做單重繼承,而實(shí)現(xiàn)接口時(shí),一次則能夠?qū)崿F(xiàn)多個(gè)接口,每一個(gè)接口間使用逗號(hào)“,”分隔。這時(shí)就可能出現(xiàn)常量或方法名沖突的情況,解決該問題時(shí),假設(shè)常量沖突,則須要明白指定常量的接口,這能夠通過“接口名.常量”實(shí)現(xiàn)。假設(shè)出現(xiàn)方法沖突時(shí),則僅僅要實(shí)現(xiàn)一個(gè)方法就能夠了。以下通過一個(gè)具體的實(shí)例具體介紹以上問題的解決方法。
? ? 使用interface來定義一個(gè)接口。接口定義同類的定義類似,也是分為接口的聲明和接口體,當(dāng)中接口體由常量定義和方法定義兩部分組成。定義接口的基本格式例如以下:
[修飾符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 常量;[public] [abstract] 方法;
}
修飾符:可選,用于指定接口的訪問權(quán)限,可選值為public。假設(shè)省略則使用默認(rèn)的訪問權(quán)限。
接口名:必選參數(shù),用于指定接口的名稱,接口名必須是合法的Java標(biāo)識(shí)符。普通情況下,要求首字母大寫。
extends 父接口名列表:可選參數(shù),用于指定要定義的接口繼承于哪個(gè)父接口。當(dāng)使用extendskeyword時(shí),父接口名為必選參數(shù)。
方法:接口中的方法僅僅有定義而沒有被實(shí)現(xiàn)。
比如,定義一個(gè)用于計(jì)算的接口,在該接口中定義了一個(gè)常量PI和兩個(gè)方法,詳細(xì)代碼例如以下:
public interface CalInterface {final float PI=3.14159f;//定義用于表示圓周率的常量PIfloat getArea(float r);//定義一個(gè)用于計(jì)算面積的方法getArea()float getCircumference(float r);//定義一個(gè)用于計(jì)算周長(zhǎng)的方法getCircumference() } 注意:
? ? 與Java的類文件一樣,接口文件的文件名稱必須與接口名同樣。
實(shí)現(xiàn)接口
接口在定義后,就能夠在類中實(shí)現(xiàn)該接口。在類中實(shí)現(xiàn)接口能夠使用keywordimplements,其基本格式例如以下:
[修飾符] class <類名> [extends 父類名] [implements 接口列表]{
}
修飾符:可選參數(shù),用于指定類的訪問權(quán)限,可選值為public、abstract和final。
類名:必選參數(shù),用于指定類的名稱,類名必須是合法的Java標(biāo)識(shí)符。普通情況下,要求首字母大寫。
extends 父類名:可選參數(shù),用于指定要定義的類繼承于哪個(gè)父類。當(dāng)使用extendskeyword時(shí),父類名為必選參數(shù)。
implements 接口列表:可選參數(shù),用于指定該類實(shí)現(xiàn)的是哪些接口。當(dāng)使用implementskeyword時(shí),接口列表為必選參數(shù)。當(dāng)接口列表中存在多個(gè)接口名時(shí),各個(gè)接口名之間使用逗號(hào)分隔。
? ? 在類中實(shí)現(xiàn)接口時(shí),方法的名字、返回值類型、參數(shù)的個(gè)數(shù)及類型必須與接口中的全然一致,而且必須實(shí)現(xiàn)接口中的全部方法。比如,編寫一個(gè)名稱為Cire的類,該類實(shí)現(xiàn)5.7.1節(jié)中定義的接口Calculate,詳細(xì)代碼例如以下:
public class Cire implements CalInterface {public float getArea(float r) {float area=PI*r*r;//計(jì)算圓面積并賦值給變量areareturn area;//返回計(jì)算后的圓面積}public float getCircumference(float r) {float circumference=2*PI*r; //計(jì)算圓周長(zhǎng)并賦值給變量circumferencereturn circumference; //返回計(jì)算后的圓周長(zhǎng)}public static void main(String[] args) {Cire c = new Cire();float f = c.getArea(2.0f);System.out.println(Float.toString(f));} } ? ? ? 在類的繼承中,僅僅能做單重繼承,而實(shí)現(xiàn)接口時(shí),一次則能夠?qū)崿F(xiàn)多個(gè)接口,每一個(gè)接口間使用逗號(hào)“,”分隔。這時(shí)就可能出現(xiàn)常量或方法名沖突的情況,解決該問題時(shí),假設(shè)常量沖突,則須要明白指定常量的接口,這能夠通過“接口名.常量”實(shí)現(xiàn)。假設(shè)出現(xiàn)方法沖突時(shí),則僅僅要實(shí)現(xiàn)一個(gè)方法就能夠了。以下通過一個(gè)具體的實(shí)例具體介紹以上問題的解決方法。
總結(jié)
以上是生活随笔為你收集整理的java中接口的定义与实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SharePoint 2013 入门教程
- 下一篇: Android 事件与事件监听器