C#介面的經典案例

來源:互聯網
上載者:User

標籤:blog   使用   cti   io   line   div   

C#介面(interface)執行個體子(簡單而經典)2008/12/04 10:04using System;using System.Collections.Generic;using System.Text;using System.Threading;namespace AppTest{    class Demo_interface    {        static void Main(string[] args)        {            //使用(注意,這裡是使用介面 IPrint,下面是不同的執行個體,獲得不同功能)            IPrint I;            I = new A(); //執行個體化 A,將列印出 A            I.Print();            I = new B(); //執行個體化 B,將列印出 B            I.Print();            Thread.Sleep(3 * 1000); //暫停3秒,看列印結果        }    }    //定義介面,定義後不需要改變,需要不同功能,繼承時擴充即可    interface IPrint    {        //介面只包含方法、屬性、索引器、事件的簽名,但不能定義欄位和包含實現的方法;        //支援多繼承;可以用於支援回調;可以作用於實值型別和參考型別;C#中不能包含任何靜態成員        //不能被直接執行個體化,可以通過繼承實現其抽象方法。        void Print();//只定義,不實現        //IPerson();                //錯誤        //string name;              //錯誤        //public void GetIDcard(); //錯誤        //void GetName();           //正確        //void GetAge(string s);    //正確        //int GetHeight();          //正確    }    //A 繼承介面    class A : IPrint    {        //實現介面方法,必須有,        //當然還可以再添加其它的欄位、屬性、方法        public void Print()        {            System.Console.WriteLine("A");        }    }    //B 繼承介面    class B : IPrint    {        public void Print()        {            System.Console.WriteLine("B");        }    }}//在這個例子中,IPrint 介面中定義了Print方法,但沒有實現方法體. //類A和類B都繼承了IPrint介面,並且實現了不同的Print方法. //在Main 中調用A\B,獲得不同的列印結果=====================================寫的不錯,不過這個例子還缺少一部分,人家可以說我可以在基類上定義Print(),PrintPreview() 2個虛函數,讓後續不同印表機的類繼承這個基類,override 虛函數,然後通過基類指標一樣可以實現這個功能。 如果你這麼說,如果要給HP印表機和IBM印表機增加一個新功能如Scan(),如果用基類虛函數就得重新修改基類,基類修改會影響到所有繼承他的類,系統成型後修改基類是非常危險的,而用介面只需讓HP的,IBM的列印類再繼承一個IScan介面就行了,不會影響到其他類,這就是介面優越於虛函數的地方。五大物件導向設計原則單一職責原則2.    開放封閉原則3.    裡氏替換原則      定義:如果對於類型S的每一個對象o1,都有一個類型T的對象o2,使對於任意用類型T定義的程式P,            將o2替換為o1,P的行為保持不變,則稱S為T的一個子類型。4.    依賴倒置原則5.    介面隔離原則 

  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.