亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

c#中的base關鍵字

c#中的base關鍵字

C#
拉風的咖菲貓 2018-08-01 14:14:30
書上的解釋是這樣的啊.它用于表示父類,通過它可以訪問父類的成員.我是這樣想的???this表當前實例嗎,訪問類本身成員。既然是繼承了父類,那父類能訪問到的成員也就是子類的成員啊。用this也能訪問到啊,base怎么感覺純屬多余...
查看完整描述

2 回答

?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

樓上的已經說的很明白了,現在說些他們的規則:Base 是子類中引用父類
This 是當前類,引用自己 1、盡量少用或者不用base和this。除了避開子類的名稱沖突和在一個構造函數中調用其他的構造函數之外,base和this的使用容易引起不必要的結果。
2、在靜態成員中使用base和this都是不允許的。原因是,base和this訪問的都是類的實例,也就是對象,而靜態成員只能由類來訪問,不能由對象來訪問。
3、base是為了實現多態而設計的。
4、使用this或base關鍵字只能指定一個構造函數,也就是說不可同時將this和base作用在一個構造函數上。
5、簡單的來說,base用于在派生類中訪問重寫的基類成員;而this用于訪問本類的成員,當然也包括繼承而來公有和保護成員。
6、除了base,訪問基類成員的另外一種方式是:顯示的類型轉換來實現。只是該方法不能為靜態方法。 希望我的回答對你有幫助,如果方便請設為滿意答案。

查看完整回答
反對 回復 2018-08-06
?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

如果說你父類里面有一個成員比如int a;那么你子類里面也可以再定義一個int a,這個時候base.a和this.a表示的就不是一個變量了,如果說子類里面沒有,那么base.a和this.a表示的都是一個變量。還有就是重寫,覆蓋和構造函數里面調用父類的這個方法。可以用:base(),還有就是關于形參名和成員變量相同的時候,因為是就近原則,所以直接寫變量名字表示的就是形參,如果加了this表示的就是這個類的成員。C#里面的this和base 跟JAVA里面的this和super是一樣的。你在定義一個變量的時候有一個this引用,指向自身,還有一個引用base,指向父類。關于你說的那種情況就是我說的第一種,如果子類成員有和父類成員同名的時候,就必須用this和base區分。

查看完整回答
反對 回復 2018-08-06
  • 2 回答
  • 0 關注
  • 729 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號