C#溫故而知新學習系列之物件導向編程—介面和抽象類別的區別是什嗎?(十八)

來源:互聯網
上載者:User

  閱讀目錄
  一:前言

  二:介面和抽象類別的區別是什嗎?

  一:前言
  在物件導向編程中,抽象是指定繼承者或者實現者必須遵循的一個協定,比如:一個類如果繼承或者實現一個介面,那麼該類就必須實現該介面的所有成員,介面就是對類的抽象,類必須遵循實現介面所有成員的協定

  二:介面和抽象類別的區別是什嗎?
  介面和抽象類別型是用於在物件導向編程中實現抽象的兩種機制,那麼在物件導向設計時,什麼情況下使用介面實現抽象?什麼情況下又使用抽象類別型實現抽象呢?
  1:介面不能提供成員的實現細節,而抽象類別型可以提供成員的實現細節,也就是說介面中的所有方法必須是抽象的,像下面的InserUser()和IGetName(),並且不能指定方法的存取修飾詞,而抽象類別型中可以有方法的實現,像下面的 GetName()還可以指定存取修飾詞public,設計時如果需要提供成員的的實現細節,則選用抽象類別型
    介面
      interface Interface1
      {
          void IInserUser();
          string IGetName();
      }
    抽象類別型
      public abstract class Class1
      {
          public abstract void InserUser();

          public virtual string GetName()
          {
              if (2 == 2)
                  return "從小就犯困";
          }
      }
  2:我們知道在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.