C 類和繼承

2021-08-02 08:53:07 字數 1872 閱讀 7736

一:基類a,派生類b繼承了a類。a中的方法和字段都被b類繼承來了。

class a

class b : a

{類體;

}b類的物件b可以正常訪問基類a中的方法和字段。

b b =new b();   

二:所有類都派生自object類。

除了特殊的類object,所有的類都是派生類。類object是唯一的非派生類。因為他是繼承層次結構的基礎。

只是一般情況下都隱式的沒有顯示罷了。class a : object {}和class a{} 等價。

三:雖然派生類不能刪除它繼承的任何成員,但是可以通過乙個和基類成員同名的成員來遮蔽基類成員。這是繼承裡非常重要的乙個功能。

❤ 遮蔽的條件是: **名稱和引數列表(引數型別,順序,個數)**要相同。特別注意**和返回型別沒有關係**

❤ 的要讓編譯器知道我們故意遮蔽了繼承的成員,要使用new修飾符。否則編譯雖然成功,但是會給乙個警告:說你隱藏了乙個繼承成員。

❤靜態成員也可以遮蔽

❤遮蔽不代表抹殺,派生類仍然繼承了基類的成員,只是把他隱藏起來了,物件訪問的是遮蔽之後的成員。 

四:在繼承類中訪問基類中被隱藏的繼承成員。使用base.名稱來訪問。

class a

class b : a

} 特別注意:這裡的base只能在子類中使用,無法在main函式中使用。所以說base關鍵字是子類引用基類被隱藏成員。在main函式中如何呼叫被隱藏的基類成員,見小一小節。

class program

} 程式結果如下:

this is class b

this is class aa

五:使用基類的引用(在main函式中)

class mybaseclass

} class myderivedclass : mybaseclass

} class program

} 程式結果如下:

this id the derived class.

this is the base class.

六:虛方法和覆蓋方法

class mybaseclass

} class myderivedclass : mybaseclass

} class program

} 程式結果如下:

this id the derived class.

this id the derived class.

注意: ❤virtual和override修飾的兩個方法必須有相同的訪問許可權,就是說不能乙個是public方法乙個是private方法。

❤不能覆蓋static方法和非虛方法

六:覆蓋標記為override的方法

class mybaseclass

} class myderivedclass : mybaseclass

} class secondderived : myderivedclass

} class program

} 程式結果是:

this is the second dericed class.

this is the second dericed class.

七:覆蓋其他型別

class myderivedclass : mybaseclass

} }

class program

} 程式結果如下: 10

10八:建構函式的執行

❤類在執行建構函式之前,要先執行它基類的建構函式。

❤構造順序是:初始化例項成員---->呼叫基類的建構函式------>執行例項建構函式的方法體

九:建構函式初始化語句

c 類和繼承

類的定義 訪問修飾符 class 類名 注 c 中只能派生乙個類,不支援多繼承。關於訪問修飾符,c 提供四種訪問修飾符。private 類中的成員變數和函式只能在自己的這個類中使用。乙個人用。protected 類中的成員變數和函式只能在自己的類和自己的派生類中使用。父子同用。public 類中的成...

c 類和繼承

通過類繼承我們可以定義乙個新的類,新類納入乙個已經宣告的類進行擴充套件。已經存在的類稱為基類,新類被稱為派生類。格式 class 派生類 基類 繼承的成員可以被訪問,無論他們是在基類中宣告還是子派生類中宣告。class someclass s class otherclass someclass s...

C 類和物件 繼承

當我們在定義類的時候類與類之間可能存在某些共性這些共性是可以通過繼承被傳承給下乙個類的,我們將其稱為繼承,使用其技術可以減少重複的 提高類之間的關係性 語法格式 class 子類 繼承方式 父類 class baseclass class myclas public baseclass 繼承方式一共...