CLR筆記:14.介面

來源:互聯網
上載者:User

CLR以及所有託管語言都不支援多繼承,通過介面類比實現

14.1 類和介面的實現

介面定義:為一組方法簽名指定一個名稱的方式。

類實現介面,就一定要提供介面所有方法的實現。

即使抽象類別,也要全部實現,但是,它可以把介面方法聲明為abstract的,從而把這個介面方法留給 衍生類別去實現,如下:

    public interface ITest     {        void Test();    }    public abstract class AbstractClass : ITest    {        public abstract void Test();    }    public class ConcreateClass : AbstractClass    {        public override void Test()        {            //Coding implementation;        }    }

14.2   定義介面

介面中可以有方法/事件/屬性,因為後者本質上也是 方法

介面中不可以有靜態成員(包括常量/枚舉)

介面之間可以"繼承",可以認為是包含另一種介面的約定,並不是真正意義的繼承

介面下所有成員,預設為public,不用聲明

14.3 實現介面

實現的介面方法,一定要標記為public,此時在IL中為virtual和sealed,即不允許子類重寫該方法( 這時new也不管用了)。

要顯示將調用的介面方法標記為virtual,則可以在子類中重寫該方法

//如果顯示標記為sealed,那麼就更不可以重寫了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.