類和繼承
- 所有的類都派生自Object;
- 派生類引用可以轉換成基類;
- 屏蔽基類成員使用關鍵字new則可以屏蔽基類成員;
- 虛方法和覆寫方法
基類的方法被標記為virtual
在派生類中有匹配的override方法
For Example:
class MyBaseClass{
Virtual public void printf(){
Console.WriteLine(“Fuck”);}
}
class MyDerived:MybaseClass{
Override public void printf(){
Console.WriteLine(“Fuck Again”)
}
Class Pargram{
Static void Main(){
MyDerived derived = new MyDerived();
MyBaseClass mybc =(MyBaseClass)derived;
Derived.printf();
Mybc.printf();
}}
結果輸出:
Fuck Again
Fuck Again
結論:在覆寫後無論有多少繼承都是顯示最高級別的派生類,由基類一直傳遞。而使用new可以屏蔽基類,則override無法覆蓋到。但基類必須由派生類轉換過來。
- 訪問級別:
Public:所有的類,包括程序集內部的類和外部的類和外部的類都可以自由地訪問成員。
Private:只能被它自己的類的成員訪問。它不能被其他的類訪問,包括繼承它的類。
Protected:如同訪問private訪問級別,除了一點,它允許派生自該類的類訪問該成員。
Internal:內部成員同一程序集內部的所有類成員都可見,程序集外部類成員不可見。
Protected internal:對所有繼承該類的成員或在該程序集內部的類可以訪問。
- 抽象成員:指設計為覆寫的函數成員
特征:
①必須是一個函數成員。也就是說,字段和常量不能為抽象成員;
②必須用abstract修飾符標記;
③不能有代碼塊。抽象成員的代碼用分號表示。
④必須被覆寫,使用override。
可以聲明的4個類型方法,屬性,事件,索引。
- 抽象類:指被繼承的類,只能作為其他繼承類的基類。抽象類可以包含抽象成員或普通的非抽象成員。抽象類的成員可以是抽象成員和普通實現的成員的任意組合。不能創建抽象類的實例。並且繼承抽象的必須覆寫。
例:
abstract class base{
Public void printfbase(){
Console.Write(“I am your father!”);}
Abstract void printfderived();
}
class derivedclass:base{
Override printfderived(){
Console.Write(“I am your father too!”);}
Class prograg{
Static void main(){
Baseclass base=new baseclass();
Derivedclass dc=new derivedclass();
Base.printfbase();
Dc.printfderived();}
}
輸出:
I am your father!
I am your father too
8.密封類:sealed 只能被用作獨立的類,不能作為基類。
9.拓展方法,聲明拓展的方法必須聲明static,拓展方法本身必須聲明static。拓展方法必須包含關鍵字this作為第一個參數類型。
Fox Example:
Namaspace ex{
Sealed class MyData{
private double D1,D2,D3;
Public MyData(double d1,double d2,double d3){
D1=d1;
D2=d2;
D3=d3;}
Public double sum(){
Return D1+D2+D3;}
Static class ExtenMyData{
Public static double Average(this MyData data){
return data.sum/3;}
}
Class Pragram{
Static void main(){
MyData data=new MyData(3,4,5);
Console.WriteLine(“Sum is :{0}”,MyData.sum);
Console.WriteLine(“Average is:{0}”,Mydata.Average();}
}
- 命名約定
Pascal 約定 標識符每個單詞首字母大寫 適用於:類、方法、命名空間、屬性和公共字段
Camel 除了第一個單詞其他單詞首字母大寫 適用於:局部變量的名稱和方法生命的形參名稱
下劃線加Camel 以下劃線開頭的camel大小標識符 適用於:私有和受保護的字段
類和繼承