繼承
c#中,每個類只能繼承乙個類
virtual和override關鍵字
c#中,類的函式中有關鍵字virtual,那麼它是可以被繼承它的類加關鍵字 override 重寫的,當然也可以不被重寫,同樣是可以使用的,但你是不能override乙個沒有關鍵字virtual的函式的。
如果乙個類的函式沒有加關鍵字virtual,那麼在繼承的類中也是可以改寫的,只需要在函式中新增關鍵字new告訴程式隱藏起父類的同名函式即可,如果不加也是可以編譯通過,只是會有乙個warning提示。
override是告訴程式我要改寫父類的方法,而new則是告訴程式隱藏起父類的方法,它們的實現是不一樣的
sealed關鍵字:表示該類無法被繼承
class program
}class animal
public virtual int getage()
public void biteman()
}sealed class dog :animal
public new void biteman()
}//無法繼承
class cat : dog
補充的:
關於override和new關鍵字還有一點,如果我是用父類型別來宣告乙個子類的話,那麼override的函式是子類的函式,而new關鍵字的函式是父類的函式
繼承關係的例項化順序:首先呼叫父類的建構函式,然後是子類的構
造函式
過載:
class program
//可以傳參不同過載,但不能傳參一樣但返回值不同
public static void printhello()
public static void printhello(string towho)
", towho);}}
//運算子過載
class complex
}
多型:乙個形態,多個功能
靜態多型:編譯時候就已經知道,主要通過程式過載來實現
動態多型:
只有程式具體執行時候才知道是什麼功能,通過override重寫達到目的
class program
}class human
}class man:human
}class woman:human}}
C 學習筆記(二) 繼承與多型
繼承 定義派生類要在類識別符號後面新增乙個冒號,接著新增基類名稱 如下 class person 定義基類person c 3.0 可以簡寫 public string gender private int age 不簡寫,新增正值判斷 public int age set public void ...
C 繼承與多型(二)
多型 虛函式 類成員函式前面加virtual關鍵字 虛函式重寫 當在子類的定義了乙個與父類完全相同的虛函式時,則稱子類的這個函式重寫了這個父類的這個虛函式 滿足條件 1.虛函式的重寫 2.父類的指標 引用呼叫虛函式 多型跟型別無關,與物件有關 多型 當使用基類的指標或引用調重寫的虛函式時,當指向父類...
C 簡單介紹虛擬繼承
一 虛擬繼承的 類d繼承自類c1和類c2,而c1類和c2類都繼承自類b,類d中會兩次繼承b,為了節省空間,可以將c1 c2對b的繼承定義為虛擬繼承,而b就成了虛擬基類 二 虛擬繼承與普通繼承的區別 1.書寫形式上 虛擬繼承要加虛擬關鍵字virtual 2.物件模型區別 虛擬繼承要多四個位元組空間,多...