1、隱藏基類方法:
(1)在子類中使用new關鍵字顯示的隱藏基類中的方法,基類的方法是虛擬的或非虛擬的都可以;
(2)如果繼承的方法是虛擬的(virtual),可以用override關鍵字重寫方法的實現**。
public class mybaseclass
}public class myderivedclass:mybaseclass}
使用new和override的區別:
myderivedclass mdc = new myderivedclass();
mybaseclass mbc;
mbc = mdc;
mbc.dosomething();
如上呼叫時,如果是用new重寫基類方法,則結果是:base。即,儘管隱藏了基類的實現**,但仍可以通過基類訪問它。
如果是用override重寫基類方法,則結果是:derived。即,重寫方法將替換基類中的實現**,即使通過基類型別訪問也是執行的重寫後的**。
2、類中使用base和this關鍵字:
base關鍵字表示包含在派生類中的基類的實現**。base引用的是物件例項,因此不能在靜態成員中使用base關鍵字。
this關鍵字表示當前的物件例項。this也是引用的物件例項,因此也不能在靜態成員中使用this關鍵字。因為靜態成員不是物件例項的一部分。
3、巢狀類:
巢狀類可以訪問其包含類的私有和受保護成員。如:
public class classa
set
}public class classb}}
呼叫:classa myobject = new classa();
console.writeline("myobject.state=", myobject.state);
classa.classb myotherobject = new classa.classb();
myotherobject.setprivatestate(myobject, 999);
console.writeline("myobject.state=", myobject.state);
結果輸出:
myobject.state=-1
myobject.state=999
C 類中相關概念
若條件判斷中出現了表示式 則計算表示式,結果若為0則為假,結果非0則為真。例如 for int i 10,j 1 i j 0 i j 假設a為乙個類 a a 表示宣告乙個a型別的物件。a b 宣告並定義乙個a型別物件,定義使呼叫無引數建構函式。a c 5 表示宣告乙個a型別的物件,並呼叫有引數建構函...
C 類及其相關
類是一種引用型別,在了解了類的一些基礎知識以後,對一些容易忽略的內容進行總結。1 呼叫基類構造器 作為乙個良好的程式設計習慣,派生類的構造器在執行初始化時,最好呼叫一下它的基類的構造器。為派生類定義構造器時,可以使用base關鍵字來指定呼叫乙個基類的構造器。下例 class mammal class...
C 中的類的型別轉換相關
c 中的class也是一種type,也可以執行type converting,即類型別轉換。可以由內建型別和類型別之間轉換,也可以在類和類之間進行型別轉換。類之間的型別轉換一般只能顯示定義,而父類和子類之間可以進行隱式型別轉換。內建型別和類型別之間轉換 include include include...