C 學習之旅(二)簡單的繼承多型介紹

2021-07-26 04:35:39 字數 1290 閱讀 7927

繼承

c#中,每個類只能繼承乙個類

virtual和override關鍵字

c#中,類的函式中有關鍵字virtual,那麼它是可以被繼承它的類加關鍵字 override 重寫的,當然也可以不被重寫,同樣是可以使用的,但你是不能override乙個沒有關鍵字virtual的函式的。

如果乙個類的函式沒有加關鍵字virtual,那麼在繼承的類中也是可以改寫的,只需要在函式中新增關鍵字new告訴程式隱藏起父類的同名函式即可,如果不加也是可以編譯通過,只是會有乙個warning提示。

override是告訴程式我要改寫父類的方法,而new則是告訴程式隱藏起父類的方法,它們的實現是不一樣的

sealed關鍵字:表示該類無法被繼承

class program

}class animal

public virtual int getage()

public void biteman()

}sealed class dog :animal

public new void biteman()

}//無法繼承

class cat : dog

補充的:

關於override和new關鍵字還有一點,如果我是用父類型別來宣告乙個子類的話,那麼override的函式是子類的函式,而new關鍵字的函式是父類的函式

繼承關係的例項化順序:首先呼叫父類的建構函式,然後是子類的構

造函式

過載:

class program

//可以傳參不同過載,但不能傳參一樣但返回值不同

public static void printhello()

public static void printhello(string towho)

", towho);}}

//運算子過載

class complex

}

多型:乙個形態,多個功能

靜態多型:編譯時候就已經知道,主要通過程式過載來實現

動態多型:

只有程式具體執行時候才知道是什麼功能,通過override重寫達到目的

class program

}class human

}class man:human

}class woman:human}}

C 學習筆記(二) 繼承與多型

繼承 定義派生類要在類識別符號後面新增乙個冒號,接著新增基類名稱 如下 class person 定義基類person c 3.0 可以簡寫 public string gender private int age 不簡寫,新增正值判斷 public int age set public void ...

C 繼承與多型(二)

多型 虛函式 類成員函式前面加virtual關鍵字 虛函式重寫 當在子類的定義了乙個與父類完全相同的虛函式時,則稱子類的這個函式重寫了這個父類的這個虛函式 滿足條件 1.虛函式的重寫 2.父類的指標 引用呼叫虛函式 多型跟型別無關,與物件有關 多型 當使用基類的指標或引用調重寫的虛函式時,當指向父類...

C 簡單介紹虛擬繼承

一 虛擬繼承的 類d繼承自類c1和類c2,而c1類和c2類都繼承自類b,類d中會兩次繼承b,為了節省空間,可以將c1 c2對b的繼承定義為虛擬繼承,而b就成了虛擬基類 二 虛擬繼承與普通繼承的區別 1.書寫形式上 虛擬繼承要加虛擬關鍵字virtual 2.物件模型區別 虛擬繼承要多四個位元組空間,多...