教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

java?實現(xiàn)接口

更新時間:2018年07月25日09時08分 來源:傳智播客 瀏覽次數(shù):

6.2 實現(xiàn)接口

    1 類實現(xiàn)接口

      在Java語言中,接口由類來實現(xiàn)以便使用接口中的方法。 一個類需要類聲明中使用關(guān)鍵字implements聲明該類實現(xiàn)個或多個接口。 如果實現(xiàn)多個接口,用逗號隔開接口名,例如A類實現(xiàn)Pintable和Addable接口。

classA implements Printable,Addable

      再如,Animal 的Dog子類實現(xiàn)Eatable和Sleepable接口。

classDog extends Aninal implements Eatable,Sleepable

    2.重寫接口中的方法

      如果一個非抽象類實現(xiàn)了某個接口,那么這個類必須重寫這個接口中的所有方法。需要注意的是,由于接口中的方法定是public abstract 方法,所以類在重寫接口方法時不僅要去掉abstract 修飾符、給出方法體,而且方法的訪問權(quán)限一定要明顯地用public來修飾(否則就降低了訪問權(quán)限,這是不允許的).實現(xiàn)接口的非抽象類實現(xiàn)了該接口中的方法,即給出了方法的具體行為功能。用戶也可以自定義接口,一個Java源文件可以由類和接口組成。

      下面的例子1中包含China類、Japan類和Compuable接口,而且China類和Japan類都實現(xiàn)了Computable接口。

Computable.java



  • public interface Computable{


  •         int MAX=46;


  •         int f(int x);


  • }

China.java



  • class China implements Computable{ //China類實現(xiàn)Computable接口


  •         int number;


  •         public int f(int x){       //不要忘記publie關(guān)鍵宇


  •                 int sum=0;


  •                 for(int i=0;i<=x;i++){


  •                         sum=sum+i;


  •                 }


  •                 return  sum;


  •         }


  • }

Japan.java



  • class Japan implements Computable { //Japan 類實現(xiàn)Computable接口


  •         int number;


  •         public int f(int x){


  •                 return MAX+x; //直接使用接口中的常量


  •         }


  • }

Example6_1.java



  • public class Example6_1{


  •         public static void main(String args[]){


  •                 China zhang;


  •                 Japan henlu;


  •                 zhang=new China();


  •                 henlu=new Japan();


  •                 zhang.number=32+Computable .MAX; //用接口名訪問接口的常量


  •                 henlu.number=14+Computable.MAX;


  •                 System.out.println("zhang的學(xué)號"+zhang.number+",zhang 求和結(jié)果"+zhang.f(100));


  •                 System.out.println("henlu的學(xué)號"+henlu.number+",henlu 求和結(jié)果"+henlu.f(100));


  •         }


  • }

如果一個類聲明實現(xiàn)一個接口,但沒有重寫接口中的所有方法,那么這個類必須是抽象類,也就是說,抽象類既可以重寫接口中的方法,也可以直接擁有接口中的方法,例如:



  • interface Computable {


  •     final int MAX = 100;


  •     vo1d speak(String s);


  •     int f(int x);


  •     float g(float x,float y);


  • }


  • abstract classA implements Computable{


  •     public int f(int x){


  •         int sum 0:


  •         for(int i=1;i<=x;i++) {


  •             sum=sum+i;


  •         }


  •     return sum;


  •     }


  • }

    4.接口的細(xì)節(jié)說明

      程序可以用接口名方問接口中的常量,但是如果個類實現(xiàn)了接口,那么該類可以直接在類體中使用該接口中的常量。

定義接口時,如果關(guān)鍵字interface前面加上public關(guān)鍵字,就稱這樣的接口是一個public接口。public接口可以被任何一個類實現(xiàn)。如果一個接口不加public修飾,就稱作友好接口,友好接口可以被與該接口在同一包中的類實現(xiàn)。

      如果父類實現(xiàn)了某個接口,那么子類也就自然實現(xiàn)了該接口,子類不必再顯式地使用關(guān)鍵字implements聲明實現(xiàn)這個接口,

      接口也可以被繼承,即可以通過關(guān)鍵字extends聲明個接口是另個接口的 子接口。由于接口中的方法和常量都是public的,子接口將繼承父接口中的全部方法和常量。



  • 注: Java提供的接口都在相應(yīng)的包中,通過import語向不僅可以引入包中的類,也可以引入包中的接口,例如:


  •     importJava.io.*;


  • 不僅引入了java.io包中的類,同時也引入了該包中的接口。
  •   
0 分享到:
和我們在線交談!