看了半天接口,不知所雲,能簡單的告訴我接口到底作什么用的嗎? 與抽象類有什么區別?
10 个解决方案
接口就是一些函數申明的集合的名稱而已,接口中的說有函數都只能是申明,不能擁有具體的函數體,而抽象類中的方法可以擁有自己的body。
我是菜鳥,我覺得接口只是一個標准,為了和其他的程序聯系使用的。
java用來實現多重繼承的。一個class可以實現多個接口。而只能繼承一個抽象類。
鳥 飛機 熱氣球
它們都能飛行是吧?那么它們有一個公共的能力:就是飛行。這個“飛行能力”就是一個接口。它里面只包含了常量和抽象方法。為什么是這樣呢?看下面一個問題。
當然,它們的飛行方法都不一樣的是吧?所以,接口“飛行能力”不能包含具體的屬性和方法,因為要實現“飛行能力”這個接口的類的飛行方法肯定不一樣的。所以,接口里只包含了常量和抽象方法。OK,怎么實現接口呢?
找本語法書看看吧。
---------------------
這么講你明白了吧
我對Interface也有點疑問,請高手解答:
interface主要用於多重繼承,但這樣做的實際意義體現在哪?能不能舉例說明?
比如我定義一個interface,並在其中定義一些沒有實現的方法;然后我在寫幾個類分別繼承並實現interface中方法,但我實際運行或調用時只須使用其中的類就行了,那interface起到了什么作用?
問題一:interface具體用在什么方面或用在什么時候?請舉例具體說明,謝謝!
問題二:是不是我在使用時可以這樣,class a implement 接口一,接口二,接口三{}
這樣是不是就叫多重繼承?
http://www.csdn.net/expert/topic/414/414738.shtm
一種用法:
interface walkable
{
public void walk();
}
class human implements walkable
{
public void walk()
{
//兩條腿走路的實現
}
}
class cat implements walkable
{
public void walk()
{
//四條腿走路的實現
}
}
在某個類中有方法
public void move(walkable wa)
{
wa.walk();
}
表示凡是implements walkable接口的對象(一定實現了walk()方法)都可以
作為move的參數傳入。這樣human對象和cat對象都可作為參數傳入。
在這里interface更像是通行證,保證傳入的對象有我可以調用的方法(walk())。
在OO中,多態性是最重要的特性之一。定義了一個接口之后,用多個不同的類實現它,就意味着在系統中,可能存在多個對象,具有相同操作的不同實現。
第二點,OO的設計原則之一是高內聚,松藕合,接口的使用,可以有效的降低類間的藕合度。