用於在派生類中實現對基類公有或者受保護成員的訪問,但是只侷限在建構函式、例項方法和例項屬性訪問器中。
功能主要包括:
(1)呼叫基類上已被其他方法重寫的方法。
(2)指定建立派生類例項時應呼叫的基類建構函式。
base常用於,在派生類物件初始化時和基類進行通訊。
base可以訪問基類的公有成員和受保護成員,私有成員是不可訪問的。
在多層繼承中,base可以指向的父類的方法有兩種情況:一是有過載存在的情況下,base將指向直接繼承的父類成員的方法;而沒有過載存在的情況下,base可以指向任何上級父類的公有或者受保護方法。
-->注意:base關鍵字不能在靜態方法中使用
用於引用類的當前例項,也包括繼承而來的方法,通常可以隱藏this。
功能主要包括:
(1)限定被相似的名稱隱藏的成員
(2)將物件作為引數傳遞到其他方法
(3)宣告索引器
this指代類物件本身,用於訪問本類的所有常量、字段、屬性和方法成員,而且不管訪問元素是任何訪問級別。因為,this僅僅侷限於物件內部,物件外部是無法看到的,這就是this的基本思想。
注意:靜態成員不是物件的一部分,因此不能在靜態方法中引用this。準確來說,this關鍵字不能在靜態方法的方法體(即大括號之間的部分)中使用、但是可以在引數中使用(即c#的擴充套件方法)。
為什麼不能在方法體中使用?
答:this指的是類例項化的當前物件,靜態方法是通過類呼叫的,不需要例項化;既然不需要例項化,就沒有當前物件;既然沒有當前物件,所以不能使用this 關鍵字。
1、base常用於,在派生類物件初始化時和基類進行通訊。
2、base可以訪問基類的公有成員和受保護成員,私有成員是不可訪問的。
3、this指代類物件本身,用於訪問本類的所有常量、字段、屬性和方法成員,而且不管訪問元素是任何訪問級別。因為,this僅僅侷限於物件內部,物件外部是無法看到的,這就是this的基本思想。另外,靜態成員不是物件的一部分,因此不能在靜態方法中引用this。
4、在多層繼承中,base可以指向的父類的方法有兩種情況:一是有過載存在的情況下,base將指向直接繼承的父類成員的方法;而沒有過載存在的情況下,base可以指向任何上級父類的公有或者受保護方法,
1、盡量少用或者不用base和this。除了決議子類的名稱衝突和在乙個建構函式中呼叫其他的建構函式之外,base和this的使用容易引起不必要的結果。
2、在靜態成員中使用base和this都是不允許的。原因是,base和this訪問的都是類的例項,也就是物件,而靜態成員只能由類來訪問,不能由物件來訪問。
3、base是為了實現多型而設計的。
4、使用this或base關鍵字只能指定乙個建構函式,也就是說不可同時將this和base作用在乙個建構函式上。
5、簡單的來說,base用於在派生類中訪問重寫的基類成員;而this用於訪問本類的成員,當然也包括繼承而來公有和保護成員。
6、除了base,訪問基類成員的另外一種方式是:顯示的型別轉換來實現。只是該方法不能為靜態方法。
用於在派生類中實現對基類公有或者受保護成員的訪問,但是只侷限在建構函式、例項方法和例項屬性訪問器中。
功能主要包括:
(1)呼叫基類上已被其他方法重寫的方法。
(2)指定建立派生類例項時應呼叫的基類建構函式。
base常用於,在派生類物件初始化時和基類進行通訊。
base可以訪問基類的公有成員和受保護成員,私有成員是不可訪問的。
在多層繼承中,base可以指向的父類的方法有兩種情況:一是有過載存在的情況下,base將指向直接繼承的父類成員的方法;而沒有過載存在的情況下,base可以指向任何上級父類的公有或者受保護方法。
-->注意:base關鍵字不能在靜態方法中使用
用於引用類的當前例項,也包括繼承而來的方法,通常可以隱藏this。
功能主要包括:
(1)限定被相似的名稱隱藏的成員
(2)將物件作為引數傳遞到其他方法
(3)宣告索引器
this指代類物件本身,用於訪問本類的所有常量、字段、屬性和方法成員,而且不管訪問元素是任何訪問級別。因為,this僅僅侷限於物件內部,物件外部是無法看到的,這就是this的基本思想。
注意:靜態成員不是物件的一部分,因此不能在靜態方法中引用this。準確來說,this關鍵字不能在靜態方法的方法體(即大括號之間的部分)中使用、但是可以在引數中使用(即c#的擴充套件方法)。
為什麼不能在方法體中使用?
答:this指的是類例項化的當前物件,靜態方法是通過類呼叫的,不需要例項化;既然不需要例項化,就沒有當前物件;既然沒有當前物件,所以不能使用this 關鍵字。
1、base常用於,在派生類物件初始化時和基類進行通訊。
2、base可以訪問基類的公有成員和受保護成員,私有成員是不可訪問的。
3、this指代類物件本身,用於訪問本類的所有常量、字段、屬性和方法成員,而且不管訪問元素是任何訪問級別。因為,this僅僅侷限於物件內部,物件外部是無法看到的,這就是this的基本思想。另外,靜態成員不是物件的一部分,因此不能在靜態方法中引用this。
4、在多層繼承中,base可以指向的父類的方法有兩種情況:一是有過載存在的情況下,base將指向直接繼承的父類成員的方法;而沒有過載存在的情況下,base可以指向任何上級父類的公有或者受保護方法,
1、盡量少用或者不用base和this。除了決議子類的名稱衝突和在乙個建構函式中呼叫其他的建構函式之外,base和this的使用容易引起不必要的結果。
2、在靜態成員中使用base和this都是不允許的。原因是,base和this訪問的都是類的例項,也就是物件,而靜態成員只能由類來訪問,不能由物件來訪問。
3、base是為了實現多型而設計的。
4、使用this或base關鍵字只能指定乙個建構函式,也就是說不可同時將this和base作用在乙個建構函式上。
5、簡單的來說,base用於在派生類中訪問重寫的基類成員;而this用於訪問本類的成員,當然也包括繼承而來公有和保護成員。
6、除了base,訪問基類成員的另外一種方式是:顯示的型別轉換來實現。只是該方法不能為靜態方法。
new關鍵字 this關鍵字 base關鍵字
使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...
base 關鍵字 類
通過base 關鍵字訪問基類的成員 呼叫基類上已被其他方法重寫的方法。指定建立派生類例項時應呼叫的基類建構函式。基類訪問只能在建構函式 例項方法或例項屬性訪問器中進行。從靜態方法中使用 base 關鍵字是錯誤的。例項 using system public class parent string p...
學習Base關鍵字
它與this關鍵字一樣,都是作為類的例項 因此不能呼叫基類的靜態成員和抽象成員 簡寫或者替代而存在的,只不過this關鍵字用於替代本類的例項,base關鍵字用於替代基類的例項,用法很簡單,其訪問基類的形式如下 base.識別符號 base 表示式列表 這個型別的一看便可以大概猜測多用於基類例項的索引...