1.封裝:是為了隱藏對象的屬性和實現細節,僅對外公開接口,控制在程序中屬性的讀和修改的權限(定義)。
封裝器:
private double a //ctrl+r,e 回車,回車 自動生成下面代碼 public double A { get { return price; } set { price = value; } 兩種封裝器的差別在屬性的名稱上, } 如果名稱首字母為小寫,在封裝器中則大寫 如果名稱首字母為大寫,在封裝器中則在首字母前加”_“。 或 private double A //ctrl+r,e 回車,回車 自動生成下面代碼 public double _A { get {return price;} set{price = value;} }
2.繼承:一個類只能繼承一個普通類,但可以繼承多個對象(接口、抽象類等)
繼承父類中所有非私有成員
單根性、傳遞性、安全性。
public class a
{
}
public class b:
a,c //a為被繼承的普通類,c為其他對象,如果有多個再用逗號分隔。
base:
繼承父類的構造函數,一個子類中的構造函數只能出現一次base,需定義合適的構造函數才能
調用或在多個子類中的構造函數中調用。
public class fu{ publice cz(int _a,string _b) { this.a=_a; this.b=_b; } } public class zi : fu{ public cz(double _c) :base(_a,_b) { this.c=_c } }
3.重寫:發生在繼承關系之上,重寫是重寫父類中的虛方法或已被重寫過的方法。
關鍵字: override | 關鍵字:overload
|
用法: | 重載,同一類中的方法名相同參數列表不同的的方法稱為重載。
public class fu{ | publice virtual string a() //虛方法 | { } } public class zi{ public override string a() { //重寫fu類中的a方法 } }
4.抽象類
abstract class a()
{
//不能被實例化
//只能讓普通類實現方法
}
定義抽象方法:
public abstract void meth();
訪問修飾符 定義抽象方法 返回值類型 方法名
注意沒有大括號,即沒有方法體(不用實現方法)。
抽象類可以被繼承,如果被普通類繼承則需要實現其未實現的方法,被抽象類繼承不一定要實現未實現的方法。
抽象方法只能寫在抽象類中,普通方法可以寫在普通類和抽象類中。
public abstract class couxianglei //定義抽象類 { public abstract void fangfa(); //定義抽象方法 } public class jutilei : couxianglei { public override void fangfa() //繼承抽象方法 { Console.WriteLine("實現了抽象方法"); } }