接口本身也能有屬性,變量,但是不能有實(shí)例屬性? 接口中 的屬性? 默認(rèn)加了三個(gè)關(guān)鍵字(public,static,final)
接口中有默認(rèn)方法,default關(guān)鍵字? 對(duì)象就可以不重寫(xiě)這個(gè)方法
接口的靜態(tài)方法,不能實(shí)現(xiàn)只能調(diào)用
接口可以繼承
面向接口編程。只要遵守接口規(guī)則,就可以用這個(gè)方法
接口的功能
在Java語(yǔ)言規(guī)范中,一個(gè)方法的特征僅包括方法的名字,參數(shù)的數(shù)目和種類(lèi),而不包括方法的返回類(lèi)型,參數(shù)的名字以及所拋出來(lái)的異常。在Java編譯器檢查方法的重載時(shí),會(huì)根據(jù)這些條件判斷兩個(gè)方法是否是重載方法。但在Java編譯器檢查方法的置換時(shí),則會(huì)進(jìn)一步檢查兩個(gè)方法(分處超類(lèi)型和子類(lèi)型)的返還類(lèi)型和拋出的異常是否相同。
接口實(shí)現(xiàn)和類(lèi)繼承的規(guī)則不同,為了數(shù)據(jù)的安全,繼承時(shí)一個(gè)類(lèi)只有一個(gè)直接父類(lèi),也就是單繼承,但是一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口,接口彌補(bǔ)了類(lèi)的不能多繼承缺點(diǎn),繼承和接口的雙重設(shè)計(jì)既保持了類(lèi)的數(shù)據(jù)安全也變相實(shí)現(xiàn)了多繼承。
Java接口本身沒(méi)有任何實(shí)現(xiàn),因?yàn)镴ava接口不涉及表象,而只描述public行為,所以Java接口比Java抽象類(lèi)更抽象化。但是接口不是類(lèi),不能使用new 運(yùn)算符實(shí)例化一個(gè)接口。如 x=new comparable(......);//這個(gè)是錯(cuò)誤來(lái)的。但是可以聲明接口變量Comparable x; //這是允許的。
Java接口的方法只能是抽象的和公開(kāi)的,Java接口不能有構(gòu)造器,Java接口可以有public、靜態(tài)的和final屬性。即接口中的屬性可以定義為 public static final int value=5;[1]
接口把方法的特征和方法的實(shí)現(xiàn)分割開(kāi)來(lái)。這種分割體現(xiàn)在接口常常代表一個(gè)角色,它包裝與該角色相關(guān)的操作和屬性,而實(shí)現(xiàn)這個(gè)接口的類(lèi)便是扮演這個(gè)角色的演員。一個(gè)角色由不同的演員來(lái)演,而不同的演員之間除了扮演一個(gè)共同的角色之外,并不要求其它的共同之處。