在 C# 中從子類的建構函式呼叫基類的建構函式

Muhammad Maisam Abbas 2023年1月30日 2021年3月21日
  1. 在 C# 中從子類的建構函式呼叫基類的預設建構函式
  2. 在 C# 中使用 base 關鍵字將引數從子類的建構函式傳遞給基類的建構函式
在 C# 中從子類的建構函式呼叫基類的建構函式

本教程將討論從 C# 中的子類的建構函式呼叫基類的建構函式的方法。

在 C# 中從子類的建構函式呼叫基類的預設建構函式

在 C# 中,當我們建立子類的例項時,編譯器會自動呼叫基類的預設建構函式。下面的程式碼示例中顯示了這種現象。

using System;

namespace call_constructor_of_base_class
{
    public class baseClass
    {
        public baseClass()
        {
            Console.WriteLine("This is the Base Class");
        }
    }
    public class childclass : baseClass
    {
        public childclass()
        {
            Console.WriteLine("This is the Child Class");
            
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            childclass c = new childclass();
        }
    }
}

輸出:

This is the Base Class
This is the Child Class

在上面的程式碼中,baseClass 是基類,而 childclass 是繼承 baseClass 的子類。當我們建立子類 childclass 的例項時,編譯器會自動呼叫 baseClass 的預設建構函式。baseClass 的建構函式在 childclass 的建構函式之前執行。此方法不能用於將引數從子類的建構函式傳遞給基類的建構函式。

在 C# 中使用 base 關鍵字將引數從子類的建構函式傳遞給基類的建構函式

如果要從子類的建構函式將引數傳遞給基類的建構函式,則必須使用 base 關鍵字base 關鍵字指定在建立子類的例項時應呼叫基類的構造方法。以下程式碼示例向我們展示瞭如何使用 C# 中的 base 關鍵字將子類的建構函式中的引數傳遞給基類的建構函式。

using System;

namespace call_constructor_of_base_class
{
    public class baseClass
    {
        public baseClass()
        {
            Console.WriteLine("This is the Base Class");
        }
        public baseClass(int x)
        {
            Console.WriteLine("The Child class passed {0} to the Base Class",x);
        }
    }
    public class childclass : baseClass
    {
        public childclass(int a): base(a)
        {
            Console.WriteLine("This is the Child Class");
            
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            childclass c = new childclass(10);
        }
    }
}

輸出:

The Child class passed 10 to the Base Class
This is the Child Class

在上面的程式碼中,我們將 10 傳遞給子類 childclass 的建構函式的基類 baseClass 的引數化建構函式。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相關文章 - Csharp Class