在物件導向程式設計中,繼承是一種概念,它允許一個類別(稱為子類別或衍生類別)繼承另一個類別(稱為基底類別或父類別)的屬性和方法。
當一個類別繼承另一個類別時,它繼承了父類別的資料成員和成員函數。
在 C# 中,使用 : 符號來表示一個類別繼承自另一個類別。




子類別、公領域如何使用父類別成員:
using System;
// 定義基底類別 (父類別)
public class A
{
    public string pen { get; set; }
    protected string book { get; set; }
    private string car { get; set; }
}

// 定義子類別 B,繼承自父類別 A
public class B : A
{
    public void myfun()
    {
        pen = "ballpoint";
        book = "Math";//protected 子類別內部可用
        car = "Toyota";//private 不能用
    }
}
// 類別 C
public class C
{
    A x;
    public void myfun()
    {
        x.pen = "ballpoint";
        x.book = "Math";//protected 未繼承類別內部不可用
        car = "Toyota";//private 不能用
    }
}

class Program //公共區域
{
    static void Main()//主程式
    {
        B x = new B();//創建子類別 B 的實例
        x.pen = "Pen";
        x.book = "Math"; //protected 外部不可用
        x.car = "Toyota";//private 不能
    }
}
privateprotectedpuble
子類別內
未繼承類別內部
公領域


如何區分父類別與子類別的資料

子類別使用父類別成員,格式為 ((父類別)子類別物件名).成員。



    using System;
    // 定義基底類別 (父類別)
    public class A
    {
        public string pen { get; set; }
        public string clothing{ get; set; }
    }
    
    // 定義子類別 B,繼承自父類別 A
    public class B : A
    {
        public string pen { get; set; }
        public void myfun()
        {
            pen = "ballpoint";//直接寫名就是自己類別的資料
            ((A)this).pen = "pencil";//名稱相同,須告知哪一個類別
            clothing = "shirt";//名稱不相同,直接使用
        }
    }
    class Program //公共區域
    {
        static void Main()//主程式
        {
            B x = new B();//創建子類別 B 的實例
            x.pen = "Pen";
            ((A)x).pen = "";
        }
    }