C# 介面

來源:互聯網
上載者:User

標籤:

interface IPrint { 
void Print(); 


class A : IPrint { 
public void Print() { 
System.Console.WriteLine("A"); 



class B : IPrint { 
public void Print() { 
System.Console.WriteLine("B"); 



class AppMain { 
public static void Print(IPrint obj) { 
obj.Print(); 

public static void Main() { 
Print(new A()); // display A 
Print(new B()); // display B 

}

在這個例子中,IPrint 介面中定義了Print方法,但沒有實現方法體.
類A和類B都繼承了IPrint介面,並且實現了不同的Print方法.
在AppMain 中調用A\B,獲得不同的列印結果

=============================================

這是一個規範和思維習慣問題。介面是程式對功能不同,但使用方法相同的類的概括和定義,如果你的很多類要繼承同一個介面,但又經常都不需要實現所有這個介面的所有方法或者屬性,那就是你的介面設計的有問題。舉個例子:
比如, "手動檔轎車" 這個介面,它需要有以下幾個方法就能開走:方向盤、油門、刹車、排檔、離合器 。 平治,寶馬,蘭博基尼,法拉利,奧迪,悍馬 這幾個具體的車型相當於"類",它們都繼承"手動檔轎車",我會開手動檔轎車,那麼這些實現 "手動檔轎車" 介面的隨便一輛車拿給我,我都能開走。 但是你造了那麼一輛車,它沒有刹車、沒有排檔、沒有離合器,然後告訴我這是一輛"手動檔轎車"(繼承"手動檔轎車" 介面) , 我拿去,是能開走,但是一旦想停車、換檔,才發現沒有這幾個裝置(方法,屬性),後果是什嗎? 沒人規定你造的這個車不能叫"手動檔轎車",但很顯然別人要用開手動檔轎車的方法來開你這個車,十有八九會出事故。所以,編譯器規定你繼承了一個介面,你就必須實現它的所有成員,就像規定你造"手動檔轎車",必須把方向盤、油門、刹車、排檔、離合器全部裝全才行。

 

C# 介面

聯繫我們

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