C 物件導向(繼承 和 as關鍵字)

2021-08-04 07:44:55 字數 1328 閱讀 8374

繼承(extend):物件導向的三大特徵之一。

繼承的好處:提高了**的復用性,讓類與類之間產生了練習,為多型提供了前提

c#中不支援多繼承(c++支援多繼承)

不要單純的為了提高**的復用性而使用繼承

結構的繼承

使用結構的乙個限制是結構不支援實現繼承,但每個結構都自動派生自system.valuetype。不能編碼實現型別層次的結構,但結構可以實現介面。

繼承的思想實現了屬於(is-a)的關係,例如:犬科動物屬於(is-a)動物,貓屬於(is-a)犬科動物,因此貓屬於(is-a) 動物

記憶體 :程式的執行會在記憶體中開闢空間

記憶體的劃分:

1.暫存器,cpu處理

2.本地方法區;

3.方法區;

4.棧記憶體,區域性變數 工作方式:先進後出,後進先出,(壓棧,彈棧)

5.堆記憶體,

as關鍵字

定義:可以使用 as 運算子執行轉換的某些型別在相容之間的

引用型別

或可以為 null 的型別。

備註:as 運算子類似於

強制轉換

操作。 但是,如果轉換是不可能的,as 返回 null 而不引發異常。請注意 as 運算子執行只引用轉換、nullable 轉換和裝箱轉換。 as 運算子不能執行其他轉換,如使用者定義的轉換,應是通過使用轉換的表示式。

expression as type

expression is type ? (type)expression : (type)null

這兩個表示式是等效的,但 expression 變數只計算一次。

示例:

object myobject = new object(); //建立乙個object物件

classa a = myobject as classa; //將它轉換為classa型別,此操作會失敗,但不會拋異常,a會被設定為null

a.tostring(); //訪問a會丟擲乙個system.nullreferenceexception異常

as 的工作方式和強制類轉換一樣,但是它永遠不會丟擲乙個異常,如果指定的操作不能正確地進行轉換,那麼得到的就是null,實際應用中通常會判斷結果是否為 null;

物件導向關鍵字

this關鍵字 this是一種特殊的引用,指向當前物件 this的兩種使用方法 1 如果發生區域性變數可以成員變數命名衝突時,可以通過this.成員變數名的方式區分例項變數和區域性變數 2 乙個構造方法中需要呼叫同乙個類的另乙個構造方法,可以通過this 的方式呼叫,但this 必須要書寫在第一行 ...

物件導向 this 關鍵字

通過this關鍵字可以明確地訪問乙個類的成員變數,解決與區域性變數名稱相同的問題。示例 如下 public class cat 在上面的 中,構造方法的引數被定義為color,它是乙個區域性變數,在類中還定義了乙個成員變數,名稱也是color。在構造方法中如如果使用color,則訪問區域性變數,但如...

物件導向 final關鍵字

final 最終,作為乙個修飾符。1 可以修飾類,函式,變數。2 被final修飾的類不可以被繼承,為了避免被繼承,被子類複寫功能。3 被final修飾的方法不可以被複寫。4 被final修飾的變數時乙個敞亮只能賦值一次,既可以修飾成員變數,也可以修飾區域性變數。當在描述事物時,一些資料的出現值是固...