<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 抽象類、密封類及類成員(C# 編程指南) 使用 [abstract](https://msdn.microsoft.com/zh-CN/library/sf985hc5.aspx) 關鍵字可以創建不完整且必須在派生類中實現的類和[類](https://msdn.microsoft.com/zh-CN/library/0b0thckt.aspx)成員。 使用 [sealed](https://msdn.microsoft.com/zh-CN/library/88c54tsw.aspx) 關鍵字可以防止繼承以前標記為 [virtual](https://msdn.microsoft.com/zh-CN/library/9fkccyh4.aspx) 的類或某些類成員。 ## 抽象類和類成員 通過在類定義前面放置關鍵字 **abstract**,可以將類聲明為抽象類。例如: ``` public abstract class A { // Class members here. } ``` 抽象類不能實例化。抽象類的用途是提供一個可供多個派生類共享的通用基類定義。例如,類庫可以定義一個抽象類,將其用作多個類庫函數的參數,并要求使用該庫的程序員通過創建派生類來提供自己的類實現。 抽象類也可以定義抽象方法。方法是將關鍵字 **abstract** 添加到方法的返回類型的前面。例如: ``` public abstract class A { public abstract void DoWork(int i); } ``` 抽象方法沒有實現,所以方法定義后面是分號,而不是常規的方法塊。抽象類的派生類必須實現所有抽象方法。當抽象類從基類繼承虛方法時,抽象類可以使用抽象方法重寫該虛方法。例如: ``` // compile with: /target:library public class D { public virtual void DoWork(int i) { // Original implementation. } } public abstract class E : D { public abstract override void DoWork(int i); } public class F : E { public override void DoWork(int i) { // New implementation. } } ``` 如果將 **virtual** 方法聲明為 **abstract**,則該方法對于從抽象類繼承的所有類而言仍然是虛方法。繼承一個抽象方法的類不能訪問該方法的原始實現。在上一個示例中,類 F 中的 DoWork 不能調用類 D 中的 DoWork。通過這種方式,抽象類可以強制派生類為虛方法提供新的方法實現。 ## 密封類和類成員 通過在類定義前面放置關鍵字 **sealed**,可以將類聲明為[密封](https://msdn.microsoft.com/zh-CN/library/88c54tsw.aspx)類。例如: ``` public sealed class D { // Class members here. } ``` 密封類不能用作基類。因此,它也不能是抽象類。密封類禁止派生。由于密封類從不用作基類,所以有些運行時優化可以略微提高密封類成員的調用速度。 在對基類的虛成員進行重寫的派生類上,方法、索引器、屬性或事件可以將該成員聲明為密封成員。在用于以后的派生類時,這將取消成員的虛效果。方法是在類成員聲明中將 **sealed** 關鍵字置于 [override](https://msdn.microsoft.com/zh-CN/library/ebca9ah3.aspx) 關鍵字的前面。例如: ``` public class D : C { public sealed override void DoWork() { } } ``` ## 請參閱 [C# 編程指南](https://msdn.microsoft.com/zh-CN/library/67ef8sbd.aspx) [類和結構(C# 編程指南)](https://msdn.microsoft.com/zh-CN/library/ms173109.aspx) [繼承(C# 編程指南)](https://msdn.microsoft.com/zh-CN/library/ms173149.aspx) [方法(C# 編程指南)](https://msdn.microsoft.com/zh-CN/library/ms173114.aspx) [字段(C# 編程指南)](https://msdn.microsoft.com/zh-CN/library/ms173118.aspx) [如何:定義抽象屬性(C# 編程指南)](https://msdn.microsoft.com/zh-CN/library/yd3z1377.aspx)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看