<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # override(C# 參考) 要擴展或修改繼承的方法、屬性、索引器或事件的抽象實現或虛實現,必須使用 **override** 修飾符。 在此示例中,Square 類必須提供 Area 的重寫實現,因為 Area 繼承自抽象的 ShapesClass: ``` abstract class ShapesClass { abstract public int Area(); } class Square : ShapesClass { int side = 0; public Square(int n) { side = n; } // Area method is required to avoid // a compile-time error. public override int Area() { return side * side; } static void Main() { Square sq = new Square(12); Console.WriteLine("Area of the square = {0}", sq.Area()); } interface I { void M(); } abstract class C : I { public abstract void M(); } } // Output: Area of the square = 144 ``` **override** 方法提供從基類繼承的成員的新實現。由 **override** 聲明重寫的方法稱為重寫基方法。重寫的基方法必須與 **override** 方法具有相同的簽名。有關繼承的信息,請參見[繼承(C# 編程指南)](https://msdn.microsoft.com/zh-cn/library/ms173149.aspx)。 不能重寫非虛方法或靜態方法。重寫的基方法必須是 **virtual**、**abstract** 或 **override** 的。 **override** 聲明不能更改 **virtual** 方法的可訪問性。 **override** 方法和 **virtual** 方法必須具有相同的[訪問級別修飾符](https://msdn.microsoft.com/zh-cn/library/wxh6fsc7.aspx)。 您不能使用 **new**、**static** 或 **virtual** 修飾符來修改 **override** 方法。 重寫屬性聲明必須指定與繼承屬性完全相同的訪問修飾符、類型和名稱,并且被重寫的屬性必須是 **virtual**、**abstract** 或 **override** 的。 有關如何使用 **override** 關鍵字的更多信息,請參見[使用 Override 和 New 關鍵字進行版本控制(C# 編程指南)](https://msdn.microsoft.com/zh-cn/library/6fawty39.aspx)和[了解何時使用 Override 和 New 關鍵字](https://msdn.microsoft.com/zh-cn/library/ms173153.aspx)。 此示例定義了一個名為 Employee 的基類和一個名為 SalesEmployee 的派生類。 SalesEmployee 類包括一個額外的屬性 salesbonus,并重寫方法 CalculatePay 以便將該屬性考慮在內。 ``` class TestOverride { public class Employee { public string name; // Basepay is defined as protected, so that it may be // accessed only by this class and derrived classes. protected decimal basepay; // Constructor to set the name and basepay values. public Employee(string name, decimal basepay) { this.name = name; this.basepay = basepay; } // Declared virtual so it can be overridden. public virtual decimal CalculatePay() { return basepay; } } // Derive a new class from Employee. public class SalesEmployee : Employee { // New field that will affect the base pay. private decimal salesbonus; // The constructor calls the base-class version, and // initializes the salesbonus field. public SalesEmployee(string name, decimal basepay, decimal salesbonus) : base(name, basepay) { this.salesbonus = salesbonus; } // Override the CalculatePay method // to take bonus into account. public override decimal CalculatePay() { return basepay + salesbonus; } } static void Main() { // Create some new employees. SalesEmployee employee1 = new SalesEmployee("Alice", 1000, 500); Employee employee2 = new Employee("Bob", 1200); Console.WriteLine("Employee4 " + employee1.name + " earned: " + employee1.CalculatePay()); Console.WriteLine("Employee4 " + employee2.name + " earned: " + employee2.CalculatePay()); } } /* Output: Employee4 Alice earned: 1500 Employee4 Bob earned: 1200 */ ``` ## C# 語言規范 有關詳細信息,請參閱 [C# 語言規范](https://msdn.microsoft.com/zh-cn/library/ms228593.aspx)。該語言規范是 C# 語法和用法的權威資料。 ## 請參閱 [C# 參考](https://msdn.microsoft.com/zh-cn/library/618ayhy6.aspx) [C# 編程指南](https://msdn.microsoft.com/zh-cn/library/67ef8sbd.aspx) [繼承(C# 編程指南)](https://msdn.microsoft.com/zh-cn/library/ms173149.aspx) [C# 關鍵字](https://msdn.microsoft.com/zh-cn/library/x53a06bb.aspx) [修飾符(C# 參考)](https://msdn.microsoft.com/zh-cn/library/6tcf2h8w.aspx) [abstract(C# 參考)](https://msdn.microsoft.com/zh-cn/library/sf985hc5.aspx) [virtual(C# 參考)](https://msdn.microsoft.com/zh-cn/library/9fkccyh4.aspx) [new(C# 參考)](https://msdn.microsoft.com/zh-cn/library/51y09td4.aspx) [多態性(C# 編程指南)](https://msdn.microsoft.com/zh-cn/library/ms173152.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>

                              哎呀哎呀视频在线观看