關於C中私有欄位的繼承問題

2023-01-19 21:05:18 字數 3960 閱讀 9539

1樓:

「私有」的定義就是不能被繼承,這是絕對的,不然訪問限定符就沒意義了,而且程式語言是人類創造出來的,無論在邏輯還是概念上是極其精準而無一漏洞。所以,私有的資料成員和方法是不能被繼承。你說你在操作屬性時納悶要用到的欄位在哪,其實很簡單。

在子類中,如果訪問繼承來的屬性,其實子類的物件在所訪問的屬性上停止了,然後以父類的身份去訪問父類的私有欄位。說到底,還是父類自己去訪問了其私有欄位,只是在表面上看起來是子類訪問了父類的私有欄位。

2樓:匿名使用者

是會被繼承的 但是子類的函式呼叫不了這些私有變數 只有父類的函式才能修改和讀取 你可以通過子類物件呼叫父類的函式把這個私有變數輸出出來 希望能幫到你

3樓:分角色讀

c++的繼承複雜多了,c#的簡單很多,但他們都無法繼承父類的私,我想樓主之所以懵

是因為c++的公有,保護,私有繼承吧(c#沒有這樣區別,算是預設公有繼承吧),首先c++公有繼承是與c#一樣,公有->公有,保護->保護,私有->無;c++保護繼承,父類的公有和保護到子類變成自己的保護成員,同理c++私有繼承下來公有和保護到子類變成自己的私有成員。

另c++複雜的地方還包括多繼承,樓主看了是不是清晰多了,這些其實實踐下就明白了!

4樓:傳奇勇者

繼承是一定全繼承的,也就是說子類一定包含父類.

私有公有釋訪問權的問題,根是不是繼承沒關係,私有的意思是只能在本類內使用,公共類是可以外部訪問的.

c++中也是有的,而且還有一個友類,在c++中這些許可權是跟繼承有關的。

你現在懵是因為沒有真正理解什麼是繼承,什麼是私有,這是一種概念的體會,不是概念的使用。

c# 子類繼承了父類的private欄位或方法嗎?

5樓:

私有的是不能繼bai承過來du

了不太清楚,不能zhi訪問是確定的,此外繼承

dao的東西和父類肯定不內是一個空間的,類容的定義是不分配空間的,只有類的實現時分配各自的空間,肯定不會和父類的重合的,子類實現和父類的實現都是各地單獨的空間。

6樓:

私有成員是會被父類整合的,除非是密封的方法活著屬性。題主不妨自己寫一個私有欄位,然後用一個公開屬性封裝他,讓子類繼承這個公開屬性,然後你會發現你可以通過這個公開屬性修改那個你繼承來的私有欄位喔~

7樓:匿名使用者

在copyc#中,子類不能繼承

父類中用private修飾的成員變數和成員方法。

c#中的繼承:

(1)c#中,派生類只能從一個類中繼承;派生類從它的直接基類中繼承成員:方法、域、屬性、事件、索引指示器。除了建構函式和解構函式,派生類隱式地繼承了直接基類的所有成員。

(2)c#中的繼承規則

1、繼承是可傳遞的。如果c從b中派生,b又從a中派生,那麼c不僅繼承了b中宣告的成員,同樣也繼承了a中的成員。object 類作為所有類的基類。

2、派生類應當是對基類的擴充套件。派生類可以新增新的成員,但不能除去已經繼承的成員的定義。

3、建構函式和解構函式不能被繼承。除此以外的其它成員,不論對它們定義了怎樣的訪問方式,都能被繼承。基類中成員的訪問方式只能決定派生類能否訪問它們。

4、派生類如果定義了與繼承而來的成員同名的新成員,就可以覆蓋已繼承的成員。但這並不因為這派生類刪除了這些成員,只是不能再訪問這些成員。

5、類可以定義虛方法、虛屬性以及虛索引指示器,它的派生類能夠過載這些成員,從而實現類可以展示出多型性。

6、派生類只能從一個類中繼承,可以通過介面實現多重繼承。

(3)訪問與隱藏基類成員

8樓:匿名使用者

不能訪問只是在子bai類的du函式成

員中不能訪問,但是在zhi父類的函dao數成員中可以訪問,而這些函回數成員答可以繼承給子類,子類就可以間接訪問paivate了!另外通過base(),一樣的道理,也可間接操作父類的private成員,不信你試試!

9樓:匿名使用者

private修飾的是私有成員變bai

量的du,也就是隻能本類使用

zhi,父類的private欄位只能dao父類自己使用protected修飾的是專保護型別成員變數,屬也就是繼承的子類也可以使用,父類的

protected欄位可以再父類和他的子類中使用public修飾的是公用成員變數,父類的public欄位,可以在其他類中使用,不管是不是這個父類的子類

10樓:我不發財

private是繼承不下來的。它只能在類內使用。繼承後沒有該方法與欄位如果想繼承出啦可以使用公開的public。

11樓:匿名使用者

private欄位或方法只能在其本身的class中操作,不能被繼承

12樓:匿名使用者

private只能在類的本身裡呼叫,子類繼承不過來的,可以繼承public,protected,protected internal

13樓:匿名使用者

如果定義的類是private的好像只是在父類中使用吧,至於繼承好像沒有的!不然的話應該可以呼叫的!

14樓:匿名使用者

除了構造方法 析構方法,子類可以繼承到父類的所有成員.即使private成員,但子類無法直接訪問private成員

c#類的繼承,c#有public,protected,private這幾種繼承之說嗎??

15樓:匿名使用者

~~~~

繼承沒什麼形式不形式的說法吧;

那幾個關鍵字是用來做"訪問"保護的;

private 私有,子類無法訪問;

protected, 只有子類可訪問;

public, 大家都可訪問;

那幾個變數在基類中已經定義,所以無法再通過正常方法去修改定義,所以在基類中是怎樣,那麼在子類中就是怎樣;只是private修飾的變數,雖然存在,但是子類中沒有直接訪問的許可權,也就是無法在子類中通過this. 或者 base.的方式使用

16樓:陽光的雷咩咩

父類的private變數在子類中不能訪問,其他兩種不變。

c#中類的私有變數能被繼承嗎?若能被繼承,那麼private修飾的變數只能在它所屬的類中被訪問時怎麼回事?

17樓:匿名使用者

一個類中的私有(private)變數是不能被繼承的,不能被其他的類呼叫。

之所以不能被繼承和不能被其它類呼叫是為了不讓使用者直接去操作這個物件,也就是說為了資料安全性。

例如:電冰箱上面調溫度的按鈕,如果給使用者直接操作,那溫度顯示可以是任何數字(但是沒那個溫度)

所以出現了封裝(隱藏內部的實現,提供外部介面),

**:private int number;

public int number

set}

在另一個類裡要呼叫number(實際上的呼叫不到的),呼叫number就可以了,同樣賦值給number就是賦值給number,同樣可以設定你能呼叫和賦值的範圍。這樣使用者就不能把空調溫度調到-100。

也許你會有這樣的想法,直接寫一個公共(public)的,然後設定它的取值賦值的範圍還不是一樣。肯定的回答:不一樣。

如果一個大型的程式的一千個類都要用到number你是不是要重複寫一千個number,那樣在棧中開闢的空間太多,太浪費記憶體。而且大部分類所賦的值和去的值都不能,那你寫了一個固定的值有什麼用。

18樓:匿名使用者

肯定不能啊 如果能 還要 protected幹嘛?

private 是私有的 不論 繼承 或者 新建物件 你在外部都不能用的

protected 只有本身 和 繼承他的子類可以訪問

c#中的繼承問題

19樓:匿名使用者

這種寫法可以不同子類呼叫公用的父類方法。

關於房產繼承的問題,關於房產繼承問題

有繼承權!按照繼承法規定,在老人無遺囑指定繼承人情況下,死者配偶,死者子女,死者父母,三方平均分配繼承死者遺產!老人有遺囑指定一套住房歸這位孩子繼承,沒有指定繼承人繼承其他房產,那麼 就要按照繼承法規定第一序列繼承人來平均分配繼承其他房產!所以 這位得到一套住房的孩子,還可以作為第一序列繼承人之一,...

關於房子的繼承問題,關於房產繼承的手續問題

房產繼承,首先需要對該住房確權。就是確定該住房有多少權益屬於死者所有。如果是死者婚前個人所得個人財產或者法律規定屬於個人的財產,那麼就是辦理繼承全部產權。如果是死者婚後取得財產,依照婚姻法規定,在沒有事先特殊書面約定前提,不管登記人是夫妻倆誰名字,住房產權屬於婚後共有財產,一人一半權益,這樣的情況是...

繼承權的問題,關於繼承權的問題

我爸沒了,但是他的地被國家戰了,也給錢,但是錢卻讓我爺領走了,也沒有給我一分,我是出嫁了,他們認為那就不是我該得得,不該給我,這兩年一直都有戰地,由於我嫁的遠,又不總回家,我爸有多少地我不知道,賠償多少錢?我爺不知道,我該怎麼辦,你爸沒了你和你爺爺都有繼承權,你可以請個律師詳細的問一下。你爸沒了你應...