首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 繼承核心:建構子鏈、基底類別轉型、base 關鍵字存取被隱藏成員、new 關鍵字隱藏方法

     編輯:關於C語言

建構子鏈機制

衍生類別建構子前,依階層順序執行所有基底類別建構子(隱式呼叫)。

基底類別參考轉型


ColorPoint clrpt = new ColorPoint();
Point pt = clrpt; // 隱式向上轉型

基底參考 pt 持有衍生物件參考,但無法存取衍生專有成員。

base 關鍵字:存取被覆寫/隱藏的基底成員

衍生類別用 new 隱藏基底同名方法時,仍可用 base 呼叫原版:


public class Point
{
    public void invert() { /* 交換 x, y */ }
}

public class ColorPoint : Point
{
    public new void invert()
    {
        int holding = X; X = Y; Y = holding;
        screenColor = Color.Gray;
    }

    public void baseInvert() => base.invert(); // 呼叫基底版本
}

使用方式


ColorPoint clrpt = new ColorPoint();
clrpt.baseInvert(); // 呼叫基底 invert()

// 或透過基底參考
Point pt = clrpt;
pt.invert(); // 同樣呼叫基底版本

選擇建構子

基底類別有多個建構子時,衍生類用 base(參數) 指定呼叫哪個。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved