接口到底是什么?求解釋



public Dlg {

interface Me {}

class You implements Me {}

public static void main(String[] args) {

/*接口是Object么?*/

Me me = new You();
You you = new You();

System.out.println(Dlg.class.getSuperClass()); //class java.lang.Object
System.out.println(Me.class.getSuperClass()); //*null*
System.out.println(me.class.getSuperClass()); //class java.lang.Object
System.out.println(You.class.getSuperClass()); //class java.lang.Object
System.out.println(you.class.getSuperClass()); //class java.lang.Object

/*接口到底是個什么貨?*/
}

}

30 个解决方案

#1


在編程時,所有的文件全部都是獨立的。接口就是當你想執行其他文件里的方法時需要的通道,你需要通過接口然后實例化來執行其他文件的方法

#2


如果你真的想知道,看看這里:
http://blog.csdn.net/jia20003/article/details/7399800

#3


接口的關鍵字是interface,類用implement實現他,涉及有很多知識,沒有接口也可以編程,但不是優秀的方便拓展和維護的程序。接口是java開發的基礎知識,建議多看看書,詳細學習一下。

#4


接口是一個規范,在開發系統時,不用接口也可以實現,但耦合性太強,以后你要換掉的話,要改動的代碼量會很大,不利於升級與維護,如果你用了接口,則可以實現一種松耦合,如果以后要換代碼的實現方式,只要你換的代碼也有實現這個接口,那要改動的量就很小。升級維護很方便,當然,你在開發時,可能會覺得麻煩。但從長遠來看,用接口是很好的一種方式。

#5


接口其實一點都不抽象,平常經常遇到!
手機,照相機,移動硬盤等等設備內部是怎么運作的?你肯定不知道~但是他們大多都實現了USB接口,所以電腦可以與之連接並訪問數據。
在程序中也是一樣的,公共類和第三方寫的類你不能也不需要知道他到底是怎么實現的,但是它們大多實現了你能知道的接口,於是你就能使用它~

#6


接口,可以說是一個父類。你實現一個接口,那么以后透過此父類來訪問里面的接口函數,就非常方便了。

代碼的編寫,也會緊湊,規范化。

#7


我是這樣理解的,接口是一個和class平級的東西,是一個聲明,只定義一些規范,他不是繼承自Object類,所以,System.out.println(Me.class.getSuperClass());返回的是null,因為  System.out.println(Me.class);返回的是interface Me,就是接口,接口沒有父類,所以返回null,System.out.println(Dlg.class.getSuperClass());Dlg.class返回的就是Dlg,他沒有顯式繼承別的類,默認就是Object類,對象me和you沒有.class屬性,應該使用getClass()方法,得到的都是類You,而類You的父類默認繼承Object,因為沒有顯式繼承別的類,所以3和5行打印的都是Object,You類的class就是類You,同上。
通過上邊的例子,可以學習到:1、一個類實現了接口,如果沒有顯式繼承其他類,那么他的父類就是Object。2、定義的變量,不管修飾變量的是接口還是類,實際變量的getClass()返回的都是new出來的類型,這里就像Me me = new You();me的getClass()是You。

#8


習慣就成自然了

#9


轎車有4個輪子,1個方向盤  這就是標准,而接口是程序里給類定義的標准

凡是一個類implements了一個接口,就必須實現接口的方法,表示這個類實現了這個接口的規范

如果我現在想用一個轎車,然后開車去北京 
Interface i = new Car(); 
i.go("北京");

如果我現在想換成跑車   
Interface i = new Roadster();
i.go("北京");

如果···(可以寫很多)

只要Car,Roadster實現了Interface,
我可以隨時很方便的換,而且這個i我不用改它,只改實現就好。

#10


關於學習到的第二點,我又試了一個例子,再定義一個類
class Her extends You{}
在程序中定義2個變量
Me her1 = new Her();
You her2 = new Her();
打印System.out.println(her1.getClass() + "," + her2.getClass());結果是Her,Her 

#11


接口(interface)是抽象方法好常量值的定義的集合。
從本質上講,接口是一種特殊的抽象類,這種抽象類中包含常量和方法的定義,而沒有變量和方法的實現。
接口定義舉例:
public interface Rnner {
    int id = 1;
    public void start();
    public void run();
    public void stop();
}
特性:多個無關的類可以實現同一個接口
一個類可以實現多個無關的接口
與繼承關系類似,接口與實現類之間存在多態性。
定義java類的語法格式:<modifier> class <name> [extends<superclass>]
[implements<interface>[,<interface>]*{
    <declarations>*
}
接口中聲明屬性默認為public static final的;也只能是public static final
接口中只能定義抽象方法,而且這些方法默認為public也只能是public
接口中可以繼承其他的接口,並增加新的屬性和方法

#12


引用 5 樓  的回復:
接口其實一點都不抽象,平常經常遇到!
手機,照相機,移動硬盤等等設備內部是怎么運作的?你肯定不知道~但是他們大多都實現了USB接口,所以電腦可以與之連接並訪問數據。
在程序中也是一樣的,公共類和第三方寫的類你不能也不需要知道他到底是怎么實現的,但是它們大多實現了你能知道的接口,於是你就能使用它~

這個解釋強悍  頂起

#13


引用 12 樓  的回復:
引用 5 樓  的回復:

接口其實一點都不抽象,平常經常遇到!
手機,照相機,移動硬盤等等設備內部是怎么運作的?你肯定不知道~但是他們大多都實現了USB接口,所以電腦可以與之連接並訪問數據。
在程序中也是一樣的,公共類和第三方寫的類你不能也不需要知道他到底是怎么實現的,但是它們大多實現了你能知道的接口,於是你就能使用它~

這個解釋強悍  頂起

程序猿是會抽象,也會實現的。

#14


引用 12 樓  的回復:
引用 5 樓 的回復:

接口其實一點都不抽象,平常經常遇到!
手機,照相機,移動硬盤等等設備內部是怎么運作的?你肯定不知道~但是他們大多都實現了USB接口,所以電腦可以與之連接並訪問數據。
在程序中也是一樣的,公共類和第三方寫的類你不能也不需要知道他到底是怎么實現的,但是它們大多實現了你能知道的接口,於是你就能使用它~

這個解釋強悍 頂起


的確夠強!
說白了接口就是一個標准,你要有它你就得按照它的規矩來

#15


簡單點就是,接口只是定義方法名稱,而不定義方法體。在引用其接口的類中定義方法體。這樣做可以降低但耦合性。接口其實就是一個類,只是這個類中的方法度沒有構造方法體

#16


給不起分了,各位大神說的都很棒,就接受接口跟類是平級就好啦   

#17


面向接口編程,會更加靈活,重用性比較大。

#18


在4樓和5樓后面加三句話
1.接口是當爹的
2.它的實現是做孫子的
3.它的實現的子類是坑爹的

#19


只有抽象方法的抽象類,但可以多繼承

#20


接口,通俗點說就是描述要干什么事,具體怎么做,要由實現類完成。

#21


接口就是抽象類的再抽象哈,方法但是抽象的,如果有變量,但是全局變量(即變量),在接口中,定義的都是未實現的抽象方法,
接口的最大好處就是可以實現多繼承。

#22


1,java是單繼承;如果要實現多繼承就可以用接口;

#23


該回復於2012-08-22 09:39:27被版主刪除

#24


具體可以看thinking in  java 那是一本好書。

#25


接口就是特殊的抽象類     特殊在都是抽象的方法   沒有實現的方法

#26


首先理解多態。。。

接口的邏輯就是,你用父類接口引用指向子類對象,那么只要這個子類對象是實現這個接口的,都是可以替換了。。所以修改起來,只需要修改替換子類對象而已。。。。。而主程序則因為是使用接口的父類引用則不用做出大量修改。。。。。。

這樣程序模塊化了,相對獨立了。。。不會牽一發而動全身。。。。

如果你全部都用實際對象引用來實現,那么整個東西就會想一團漿糊一樣胡在一起了。。。一改全改。。。。不利於維護。。。

#27


接口:interface
接口中只能有抽象方法和常量,不能有變量和方法的實現。
接口,不是一個類,沒有構造器,不能實例化。
通常,我們定義一個接口(只聲明方法,定義常量),然后讓多個無關的類實現這個接口。在調用時,我們可以定義一個接口的引用,指向具體的實現類的對象(Interface i = new implementClass();),這樣,用接口的引用,調用接口中的方法,實際上,執行的是具體類的方法,但如何實現,對外是不可見的,實現了封裝,體現了面向接口編程的思想。

#28


接口的作用是實現多態。

比如:兩個動物,貓和狗,定義兩個類,都能實現run方法。那就實現一個接口A,接口A中有一個run方法,讓貓和狗都繼承接口。

那么在主類中,就可以寫 A a = new Dog();a.run();

改為貓的話,只需要寫成A a = new Cat(),其他地方不用改。

以此實現代碼的有效性。

#29


接口:interface是一個規范,在他里面定義的全是抽象方法,接口通過類可以實現里面的方法,但在實現中,類必須實現接口里面的全部方法,否則該類就不能實現該接口,。接口和抽象類差不多,里面是抽象方法,但是接口和類應該是平級的,類和接口都可以繼承,但是類是單繼承,接口是多繼承,一個類只能繼承一個父類,一個接口可以繼承比一個多的接口,但是一個類同時可以實現一個或者幾個接口。還有一個共同點就是父類和接口的引用都能指向子類的對象。

#30


簡單的說就是所有的方法都是抽象的,沒有實現功能.

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com