在物件導向程式設計中,繼承是一種概念,它允許一個類別(稱為子類別或衍生類別)繼承另一個類別(稱為基底類別或父類別)的屬性和方法。
當一個類別繼承另一個類別時,它繼承了父類別的資料成員和成員函數。
在 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 不能
}
}
| private | protected | puble |
子類別內 | ✘ | ✔ | ✔ |
未繼承類別內部 | ✘ | ✘ | ✔ |
公領域 | ✘ | ✘ | ✔ |
如何區分父類別與子類別的資料
子類別使用父類別成員,格式為 ((父類別)子類別物件名).成員。

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 = "";
}
}
|