日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java面试题41 下面字段声明中哪一个在interface主体内是合法的? ()

發布時間:2023/12/10 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java面试题41 下面字段声明中哪一个在interface主体内是合法的? () 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java面試題41 下面字段聲明中哪一個在interface主體內是合法的? ()

A private final static int answer = 42; B public static int answer = 42; C final static answer = 42; D int answer;

1、接口:一種把類抽象的更徹底,接口里只能包含抽象方法的“特殊類”。接口不關心類的內部狀態數據,定義的是一批類所遵守的規范。(它只規定這批類里必須提供某些方法,提供這些方法就可以滿足實際要求)。

在JAVA編程語言中是一個抽象類型,是抽象方法的集合,接口通常以interface來聲明。一個類通過繼承接口的方式,從而來繼承接口的抽象方法。

接口并不是類,編寫接口的方式和類很相似,但是它們屬于不同的概念。類描述對象的屬性和方法。接口則包含類要實現的方法。

除非實現接口的類是抽象類,否則該類要定義接口中的所有方法。

接口無法被實例化,但是可以被實現。一個實現接口的類,必須實現接口內所描述的所有方法,否則就必須聲明為抽象類。另外,在Java中,接口類型可用來聲明一個變量,他們可以成為一個空指針,或是被綁定在一個以此接口實現的對象。

定義:【修飾符】interface接口名extends父接口1,賦接口2,.......//不用extends父接口1...就是定義接口
{
//零到多個常量定義......
//零到多個抽象實例方法定義.....
}

【語法說明】:1、修飾符可以是public或者省略,如果省略public訪問控制符,則是包訪問權限。

2、接口里所有的成員都是public修飾,因為接口是公共的,所有類都能訪問的。接口里屬性默認的修飾為:public static final,不管屬性前面寫沒寫都會默認加上,同樣方法的默認修飾為:public abstract,內部類:public static。都會默認加上。

3、成員里面不能有構造器,不能有初始化塊。

4、一個java源文件里最多只能定義一個接口,因為其是public修飾的,存儲的名字必須和public修飾的類的名字一樣,而接口可以看成一個特殊的類。

5、接口的繼承:一個接口可以有多個直接父接口,接口只能繼承接口,不能繼承類。

【注意點】:a、子接口繼承父接口,將會獲得父接口里定義的所有抽象方法,常量屬性,內部類等定義。

3、接口的使用:語法:【修飾符】class類名extends父類implements接口1,接口2......{ 類體 }。

【注意事項】

a、說明:一個類可以同時繼承一個父類,和多個接口,只是extends必須放置implements之后。

b、接口不能創建實例,但是可以聲明變量,但其一定是引用到了其實現類的對象。

c、主要用途就是被類實現。

d、實現的方法:利用implements關鍵字

e、一個類繼承了一個接口之后,必須完全實現這些接口里所定義的全部抽象方法(也就是要在子類里面重寫這些類方法),否則,如果沒有完全實現,那么此類也只能定義成抽象類。

f、重寫接口方法時,修飾符只能比父類更大,或者相等,所以其也必須是public修飾符。

g、所有接口類型的變量都可以直接賦給Object類型的變量。

貼上示例代碼(引用于李剛的瘋狂java):

?? ?

//定義一個接口Outputinterface Output{//接口里只能把屬性定義成常量int MAX_CACHE_LINE = 50;//主要是定義存儲空間//接口里定義的只能是public的抽象方法void out();void getData(String msg); }//定義一個接口Productinterface Product{int getProduceTime(int a);}//讓printer類實現定義的接口public class Printer implements Output,Product{private String [] printData = new String[MAX_CACHE_LINE];private int dataNum =0;public void out()//重寫父接口Output的方法{while(dataNum>0){System.out.println("打印機打印"+printData[0]);System.arraycopy(printData,1,printData,0,--dataNum);}}public void getData(String msg)//重寫父接口Output的方法{if(dataNum>=MAX_CACHE_LINE){System.out.println("已滿"); }else{printData[dataNum++] = msg;}}public int getProduceTime(int a)//重寫父接口Product的方法{return a = a;}public static void main(String[] args){//父接口可聲明變量,但是不能創建實例,多態:聲明的是Output,但是創建的實例是PrinterOutput O= new Printer();O.getData("xiuxiu");O.out();//直接調用輸出的方法//父接口可聲明變量,但是不能創建實例,多態:聲明的是Output,但是創建的實例是PrinterProduct p = new Printer();System.out.println(p.getProduceTime(82));//所有接口類型的引用變量都可以直接賦值給Object類型的變量Object obj = p;Object obj1 = O;}}

?4、抽象類和接口的異同:

相同:

1、都有抽象方法。

2、都不能創建實例。

3、子類繼承其后都必須全部實現其內的抽象方法,如果沒有全部實現的話,類只能定義成抽象類。

不相同:

1、接口里只能有抽象方法,抽象類里可以有普通方法。

2、接口類里的屬性默認有修飾語publicstaticfinal,但是抽象類中的屬性可以是普通的。

3、接口沒有初始化塊,抽象類里有。

4、接口可以有多個父接口,但是抽象類只能有一個父類。

接口中的屬性在不提供修飾符修飾的情況下,會自動加上public static final

注意(在1.8的編譯器下可試):

(1)屬性不能用private,protected,default 修飾,因為默認是public

(2)如果屬性是基本數據類型,需要賦初始值,若是引用類型,也需要初始化,因為默認有final修飾,必須賦初始值;

(3)接口中常規的來說不能夠定義方法體,所以無法通過get和set方法獲取屬性值,所以屬性不屬于對象,屬于類(接口),因為默認使用static修飾。

答案為B

我是歌謠,有什么不合理之處歡迎指出。喜歡敲代碼,無聊刷刷題

閱讀目錄(置頂)(長期更新計算機領域知識)

閱讀目錄(置頂)(長期更新計算機領域知識)

閱讀目錄(置頂)(長期科技領域知識)

歌謠帶你看java面試題

總結

以上是生活随笔為你收集整理的java面试题41 下面字段声明中哪一个在interface主体内是合法的? ()的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。