c 基礎加強 多型I

2021-06-05 16:49:40 字數 1952 閱讀 4559

一、隱藏基類方法:new

class mybase

}class mysub : mybase

}

二、重寫基類方法 virtual   override

// 將父類方法標記為virtual,表示可以被重寫

// 將子類方法標記為override,表示為重寫基類方法

class usblei

}class usb燈:usblei

}class iphone : usblei

}class udisk : usblei

}

隱藏基類 與 重寫基類 的前提: 是子類繼承父類,且有相同的方法(非過載)

有關new 與 override的區別:new為隱藏基類方法,看實際定義型別來決定呼叫方法;override 為重寫基類方法,呼叫最新方法。父類方法中沒有加 virtual修飾符,則子類不能加 override修飾符對父類方法進行重寫。

如:usblei usblight = new usb燈();         

usblight.usb();

usblei usbiphone = new iphone();

usbiphone.usb();

usblei usbdisk = new udisk();         

usbdisk.usb();

console.readkey();

執行結果為:

燈亮了充電了

傳資料mybase  mb = new mysub()

mb.func();

執行結果為:

俺是父類

mysub sb =new mysub()

sb.func()

執行結果為:

俺是子類

三、多型的前提:繼承 與 黎克特制轉換原則。

四、抽象方法 abstract :不用寫方法體,或者根本不知道怎麼寫方法體;沒有方法體,就沒有大括號。

1、抽象方法必須存在於抽象類中,抽象類不能例項化。

2、抽象方法的定義: 訪問修飾符一般是public,不允許private;

方法是可以帶引數。public abstract void func();

3、子類必須實現父類的所有抽象方法,除非子類也是抽象類;其實現方法為:

public override void func()

console.writeline("實現了父類的抽象方法");

4、class mysub:mybse游標在此處時,按下shift + alt + f10 再敲回車,自動補全子類實現基類的抽象方法。

五、抽象類:

1、不能例項化;

2、抽象類就是一般類多了幾個抽象的成員;

3、定義:

abstract class myabs

public abstract void func();

//凡是與方法有關的都可以作為抽象成員

//以下是四種抽象成員

//可讀可寫的抽象屬性

public abstract string name      //如果不加abstract ,則為預設屬性

get;

set;

public abstract string name   

get;

public abstract string name

get;

//索引器(帶引數的屬性)、事件的宣告(乙個私有的委託變數加上兩個方法,類似於字段與屬性的關係)

4、子類的實現**如下:

class mysub : myabs

public override string name

public override string name1

}public override string name2

}}

c 基礎加強 多型II 介面

介面的定義 把公共例項 非靜態 方法和屬性組合起來,以封裝特定功能的乙個集合。介面的成員只能包含 方法 屬性 索引 事件宣告。介面的成員沒有訪問修飾符。注意 介面不能單獨存在,不能像例項化乙個類那樣例項化介面 介面不能包含實現其成員的任何 而只是定義成員本身 實現過程由實現介面的類來完成。介面的名稱...

c 基礎加強

反編譯工具.netreflector7.0 dotnetfx.exe包含 net 基類庫,在客戶機器上簡便安裝 net環境 1 多個建構函式了,可以通過 this 繼承省略一些 2 c 有5 種訪問修飾符 private 當前類內部訪問 protected 當前類內部以及當前類的子類內部訪問。int...

C 基礎 多型

多型 為了程式的可擴充套件性,開放封閉原則 對修改封閉,對擴充套件開放 多型就是指不同物件收到相同訊息時,會產生不同的行為,同乙個類在不同的場合下表現出不同的行為特徵。多型的作用 把不同的子類物件都當做父類來看,可以遮蔽不同子類物件之間的差異性,寫出通用的 做出通用的程式設計,已以適應需求的不斷變化...