[轉(zhuǎn)]Unity3D基礎(chǔ)知識 接口

接口定義:

接口描述的是可屬于任何類或結(jié)構(gòu)的一組相關(guān)功能觉啊,所以實(shí)現(xiàn)接口的類或結(jié)構(gòu)必須實(shí)現(xiàn)接口定義中指定的接口成員嘉抒。
接口使用interface關(guān)鍵字進(jìn)行定義姿鸿,可由方法殖卑、屬性站削、事件、索引器或這四種成員類型的任意組合構(gòu)成懦鼠。

接口的特性:

1钻哩、接口類似于抽象基類,不能直接實(shí)例化接口肛冶;接口中的方法都是抽象方法街氢,實(shí)現(xiàn)
接口的任何非抽象類型都必須實(shí)現(xiàn)接口的所有成員。
2睦袖、接口不能包含常量珊肃、字段、運(yùn)算符馅笙、實(shí)例構(gòu)造函數(shù)伦乔、析構(gòu)函數(shù)或
類型、不能包含靜態(tài)成員董习。
3烈和、接口成員是自動公開的,且不能包含任何訪問修飾符皿淋。
4招刹、接口自身可從多個接口繼承,類和結(jié)構(gòu)可繼承多個接口窝趣,但接口不能繼承類疯暑。

interfaceIProgram
   {
       void Fun();
   }
   class Program:IProgram
   {
        //顯式實(shí)現(xiàn)接口成員
       void IProgram.Fun()
       {
           Console.WriteLine("I amFun.");
       }
       staticvoid Main(string[] args)
       {
          IProgram p =new Program();  //聲明一個接口實(shí)例,但不是對接口進(jìn)行實(shí)例化
           p.Fun();
           Console.Read();
       }
   }

接口的特性:

實(shí)現(xiàn)接口可以顯式實(shí)現(xiàn)和隱式實(shí)現(xiàn)哑舒,那么這兩種實(shí)現(xiàn)到底有什么優(yōu)缺點(diǎn)呢妇拯?
一般情況,當(dāng)類或者結(jié)構(gòu)要實(shí)現(xiàn)的是單個接口洗鸵,可以使用隱式實(shí)現(xiàn)越锈。
如果類或者結(jié)構(gòu)繼承了多個接口且接口中具有相同名稱成員時,就要用到顯式實(shí)現(xiàn)膘滨,當(dāng)顯式實(shí)現(xiàn)方式存在時瞪浸,隱式實(shí)現(xiàn)方式就失效了。


interfaceIProgram
    {
        void Fun();
    }
    interface IAProgram
    {
        void Fun();
    }
class Program :IProgram, IAProgram
    {
        void IProgram.Fun()  //顯式實(shí)現(xiàn)接口IProgram
        {
            Console.WriteLine("I amIProgram Fun.");
        }
        void IAProgram.Fun()  //顯式實(shí)現(xiàn)接口IAProgram
        {
            Console.WriteLine("I amIAProgram Fun.");
        }
        //public void Fun()   //隱式實(shí)現(xiàn)接口
        //{
        //   Console.WriteLine("I am Program Fun.");
        //}
        staticvoid Main(string[] args)
        {
            //IProgram p = new Program();
            //p.Fun();
            //IAProgram ap = new Program();
            //ap.Fun();
            Program pro =new Program();
            ((IProgram)pro).Fun();
            ((IAProgram)pro).Fun();
            Console.Read();
        }
}

接口的繼承:
1. 接口繼承和類繼承不同:首先吏祸,類繼承不僅是說明繼承对蒲,而且也是實(shí)現(xiàn)繼承;而接口繼承只是說明繼承贡翘。
2.也就是說蹈矮,派生類可以繼承基類的方法實(shí)現(xiàn),而派生的接口只繼承了父接口的成員方法說明鸣驱,而沒有繼承父接口的實(shí)現(xiàn)泛鸟。
3.C#中類繼承只允許單繼承,但是接口繼承允許多繼承踊东,一個子接口可以有多個父接口北滥。

接口的覆蓋:


由于接口的實(shí)現(xiàn)沒有方法體刚操,抽象方法也沒有方法體,那么當(dāng)我們在接口的實(shí)現(xiàn)方法里調(diào)用抽象方法時再芋,會如何執(zhí)行呢菊霜?

結(jié)果是:抽象類子類的實(shí)現(xiàn)方法功能

 
interfaceIProgram
    {
        void Fun();
    }
    abstract class AProgram : IProgram
    {
        public abstract void AFun();
        void IProgram.Fun()
        {
            AFun();
        }
    }
classProgram:AProgram
    {
        public override void AFun()
        {
            Console.WriteLine("I amAProgram.");
        }
        staticvoid Main(string[] args)
        {
            IProgram pro =new Program();
            pro.Fun();
        }
   }

接口和抽象類的區(qū)別:

1.接口用于規(guī)范,抽象類用于共性济赎。
2.接口中只能聲明方法鉴逞,屬性,事件司训,索引器构捡。而抽象類中可以有方法的實(shí)現(xiàn),也以定義非靜態(tài)的類變量壳猜。
3.抽象類是類勾徽,所以只能被單繼承,但是接口卻可以一次實(shí)現(xiàn)多個统扳。
4.抽象類可以提供某些方法的部分實(shí)現(xiàn)捂蕴,接口不可以。
5.抽象類的實(shí)例是它的子類給出的闪幽。接口的實(shí)例是實(shí)現(xiàn)接口的類給出的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末啥辨,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子盯腌,更是在濱河造成了極大的恐慌溉知,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腕够,死亡現(xiàn)場離奇詭異级乍,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)帚湘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進(jìn)店門玫荣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人大诸,你說我怎么就攤上這事捅厂。” “怎么了资柔?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵焙贷,是天一觀的道長。 經(jīng)常有香客問我贿堰,道長辙芍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮故硅,結(jié)果婚禮上庶灿,老公的妹妹穿的比我還像新娘。我一直安慰自己吃衅,他們只是感情好往踢,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捐晶,像睡著了一般菲语。 火紅的嫁衣襯著肌膚如雪妄辩。 梳的紋絲不亂的頭發(fā)上惑灵,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天,我揣著相機(jī)與錄音眼耀,去河邊找鬼英支。 笑死,一個胖子當(dāng)著我的面吹牛哮伟,可吹牛的內(nèi)容都是我干的干花。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼楞黄,長吁一口氣:“原來是場噩夢啊……” “哼池凄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鬼廓,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤肿仑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后碎税,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尤慰,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年雷蹂,在試婚紗的時候發(fā)現(xiàn)自己被綠了伟端。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡匪煌,死狀恐怖责蝠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情萎庭,我是刑警寧澤玛歌,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站擎椰,受9級特大地震影響支子,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜达舒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一值朋、第九天 我趴在偏房一處隱蔽的房頂上張望叹侄。 院中可真熱鬧,春花似錦昨登、人聲如沸趾代。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撒强。三九已至,卻和暖如春笙什,著一層夾襖步出監(jiān)牢的瞬間飘哨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工琐凭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芽隆,地道東北人。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓统屈,卻偏偏與公主長得像胚吁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子愁憔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容