C# 物件導向說明
類別宣告
class Pokemon
{
public float w, h;
public Pokemon()
{
}
}
物件變數存取權限
public : 可由其他類別及物件存取
private : 僅允許自身類別存取
建構子
需為public, 才可由其他類別new 出物件. 若為private , 則為singletone的設計模式
若無自訂建構子, 編譯器會自動加上預設建構子
若加入自訂建構子, 編譯器不會自動加上預設建構子
建構子覆寫
建構子覆寫後, 需要由A建構子呼叫B建構子, 則是於A建構子後面加上 “:” , 如下所示
class Pokemon
{
float w, h;
public Pokemon() : this (10.0f, 0.1f)
{
Console.WriteLine("原始 Pokemon 出生了");
}
public Pokemon(float w, float h)
{
Console.WriteLine("自訂 Pokemon 出生了");
this.w = w;
this.h = h;
}
}
類別繼承
類別繼承, 於class後面加上 “:”, 如下所示
class Pokemon
{
public float w, h;
}
class Pikachu : Pokemon{}
}
class Eve : Pokemon{}
此時的Pikachu及 Eve都會繼承了Pokemon的w, h物件變數
繼承後的存取修飾子
private : 只允許在同類別內存取
protected : 類別及子類別有效, 不同namespace之子類別也有效. 但同namespace內, 物件無效
internal : 同namespace有效
protected internal : 同namespace及不同namespace之子類別有效
public : 全部都有效

繼承後之建構子
在下述之程式碼中, 執行new Pikachu()後,竟會出現
Pokemon出生
皮卡丘出生
