asp.net基礎知識:簡單的例項理解介面的偉大意義
yousuosi 2012-5-26
首先,我們必須明確,介面是乙個類。
「介面是乙個特殊的類,又是乙個特別有意義的類,不是因為它的特殊,而是因為它的意義,叫它介面更合適,但不能忘了,它仍是類。」
「介面是乙個只有宣告,沒有實現的類。」
很多人糾結於介面只是乙個標準,是乙個契約,而忘記了它的意義。
下面我們來看這樣乙個問題:
話說有家影視公司選拔偶像派男主角,導演說了,男演員,身高是王道。於是有下面**:
public class actor
public string name
}public int height
}public int compareto(object obj)
public string getname()
}
這個類,除了可以存放男演員的基本資訊,還定義了乙個函式
public
int compareto(object obj),因為,我們要比較男演員的身高,用身高判斷哪個演員更好。
有了這個類,後面,你可以比較輕鬆地編寫**,判斷是劉德華更優秀,還是潘長江更優秀了,這個**,我這裡就略過去了….
(兒童不宜,此處省略1000行)……………….
現在的問題是,明天又要選撥女演員了,導演說了,女演員,苗條是王道。女演員的這個類,你肯定是要做的,只是….
只是,我剛才略過去的,讓你編寫的**,你是不是還要再重新編寫呢????
這等於又重新編寫了乙個程式。
這時,我們就想到了介面,我們來接著看**吧:
我先做乙個介面,這個介面:
namespace westgarden.iplayer
}
這個介面,定義了兩個函式,乙個,當然是要進行比較,標準由你定,你說是導演定的,那更好,不用你費腦子了。
我們把剛才做的男演員的類,按照這個介面的標準來實現,也就是繼承這個介面:
using system;
using westgarden.iplayer;
namespace westgarden.dal
public string name
}public int height
}public int compareto(object obj)
public string getname()
}}
順手,把女演員的類也做了吧:
using system;
using westgarden.iplayer;
namespace westgarden.dal
public string name
}public int weight
}public int compareto(object obj)
public string getname()
}}
這時,我們在應用層這樣編寫**:
protected void page_load(object sender, eventargs e)
public void whoisbetter(iselectplayer a, iselectplayer b)
注意:
我們做的這個函式,
public
void whoisbetter(iselectplayer a,iselectplayer b)
這個函式,形參是
iselectplayer
,是介面,我認為,介面的意義,就在這裡。
你實現介面的類是男演員也好,女演員也好,男主角也好、女主角也好、男配角也好、女本角也好、男群眾演員也好、女群眾演員也好,只要你繼承的是我這個
iselectplayer
,或者,你習慣於說,遵守了我這個介面的標準、或者契約,我這段**,都不需要改變!!
這和那個比方是一樣的,不管你插在usb介面的是u盤,還是行動硬碟,還是什麼***,還是mp4,還是你新發明的什麼東西,只要你能插在我的usb口上,我主機都不需要做任何改變,直接在上面讀取或者寫入資料。
這個,是硬體介面的意義所在,也是我們這個
iselectplayer
類的意義所在,因為它有了這個偉大的意義,才把它改叫為介面的,因為,它象usb介面一樣工作著……
在些一併感謝!
簡單的例項理解介面的偉大意義
首先,我們必須明確,介面是乙個類。介面是乙個特殊的類,又是乙個特別有意義的類,不是因為它的特殊,而是因為它的意義,叫它介面更合適,但不能忘了,它仍是類。介面是乙個只有宣告,沒有實現的類。很多人糾結於介面只是乙個標準,是乙個契約,而忘記了它的意義。下面我們來看這樣乙個問題 話說有家影視公司選拔偶像派男...
介面的個人理解,簡單易懂
1,內部介面,在乙個類中定義乙個介面,那麼這個類就可以通過這個介面去操作外部類的屬性了和方法了。內部介面的精髓 1 通過繼承該類中的介面,並且傳入繼承介面的物件,可以實現安對該類屬性的修改 2 並且進行實現,可以對物件的屬性直接進行修改 預留介面是等著實現的類被呼叫,注意這裡的被呼叫關係 2,繼承的...
c 例項簡單理解多型 繼承和介面
c 這種完全物件導向的程式語言提供了兩個重要的特性 繼承和多型 簡單定義 不同的物件對同一訊息作出不同的響應就是多型。繼承是使用已存在的類的定義作為基礎建立新類的技術,新類的定義可以增加新的資料或新的功能,也可以用已存在的類的功能。下面用例項來理解 1最簡單的繼承 using system usin...