物件導向(基礎oop)之進入繼承

2022-04-29 07:45:11 字數 1879 閱讀 4869

1.繼承的目的雖然是讓子類去擁有父類的成員,但是繼承一定不要亂繼承

不要僅僅是為了去得到某1個類的成員而去繼承.

滿足繼承的關係: 當滿足is a 的關係的時候,就可以繼承.

當子類是1個父類的時候 那麼就可以繼承.

student person

class

student : person

麻雀    鳥

汽車    交通工具

電風扇  電器

2. 只要有1個成員 不是所有的子類 都擁有的, 那麼這個成員就不應該定義父類中.

3. this關鍵字代表當前物件, 通過this關鍵字可以訪問當前物件的成員

當前物件的成員:  自己本身的員+從父類繼承過來的所有的成員.

1

class

student : person24

56public

void

test()

710 }

this關鍵字可以訪問 本類的所有成員和父類的非私有成員.  父類的私有成員確實存在,但是就是訪問不到.

this關鍵字仍然代表的是物件,通過它可以點出物件中的 除了父類的私有成員 以外的所有成員.

this關鍵字只能用在例項方法中.    

base關鍵字.顯示的訪問父類的非私有成員 。 可以訪問子類物件中的 父類的 非私有成員.

特別強調的是: base不代表父類物件 因為壓根就沒有父類物件. 通過它可以訪問父類的非私有成員.

通過this關鍵字訪問當前物件的成員的時候: 先找子類本身有沒有這個成員,如果沒有再找是否有從父類繼承過來的.

base關鍵字 直接就找父類中的成員.

1

class

student : person24

56public student(string name, int age, bool gender, string

stuno)

7 :base

(name,age,gender)

811 }

我們發現,base可以點出來的成員 通過this都可以點出來訪問.

建議: 如果我們訪問的確實是從父類繼承過來的成員 那麼建議用base關鍵字來訪問. a.方便**的閱讀.b.提高效率

只有在訪問的成員確實是子類獨有的,那麼我們才用this關鍵字.

4. 繼承的特點

a. 單根性:  1個類只能有1個父類. 1個人只能有1個親爹, 但是可以有多個乾爹.

但是1個類可以實現多個介面.

b. object類是所有類的祖宗類.c#中的類都直接的或者間接的從object類繼承.

如果我們寫1個類 不為這個類指定父類 那麼這個類預設就從object類繼承.

所以我們才可以在這個類中看到object類的成員.

c. 傳遞性:

a類從b類繼承, b類從c類繼承 那麼a類就擁有了b和c的所有成員.

5.  protected修飾的成員只能直接在本類和本類的子類中訪問.            

1

protected

double height 23

4public

void

sayhi()

5

在子類中只能直接訪問當前子類物件從父類繼承過來的ptotected

但是不能通過父類物件點出protected來訪問.

通過子類物件 在子類的內部 是可以點出protected的.        

在父類的內部是無論是直接訪問還是建立父類物件都是可以訪問protected

物件導向(OOP)基礎

1 物件導向特性 封裝 繼承 多型。2 oop概念 類 class 物件 object 字段 field 描述類的某些性質。屬性 attribute 通過方法訪問和操作字段。方法 method 定義類的行為。3 類的建立 修飾符 class 類名 class computer 4 物件的宣告 例項化...

Python基礎 物件導向OOP

魔法函式 物件導向概述 幾個名詞 類和物件的概念 類的內容,應該具有兩個內容 類的基本實現 如何宣告乙個類 可以通過缺省內置變數檢查類和物件的所有成員 類的所有成員檢查 定義乙個學生類,用來形容學生 class student 乙個空類,pass代表跳過 pass必須有 pass 定義乙個物件 zs...

oop物件導向

首先是定義 什麼是物件 物件就是屬性的無序集合,每個屬性存放乙個 原始值or物件or函式 既然是屬性的無序集合,那麼屬性的含義顧名思義,那麼屬性是什麼 屬性就是乙個個的鍵值對.也就是 屬性名 屬性 一分為二,首先是屬性名 什麼可以做屬性名,既然屬性的名字,所以我們一般是用字串來命名的,當然,如果自己...