Unity C 基礎學習08

2021-10-20 04:49:58 字數 1914 閱讀 9152

第八節:虛方法,重寫,多型,物件導向,構造構析

一、虛方法,重寫

重寫和虛方法

虛方法:多用於實現多型(使用父類的型別,去呼叫子類中實現的方法)

虛方法用virtual來修飾,用override修飾的方法叫做重寫

注意:只有方法和屬性才是virtual來修飾,字段不能

使用格式:父類中使用關鍵字virtual來修飾方法,在子類中重寫父類中定義的方法,使用關鍵字override(重寫)

方法替換,子類中實現和父類名字一樣的方法,建立子類物件時,會呼叫子類中的方法,而不是呼叫繼承自父類中實現的方法,new關鍵字的作用屬於系統的友好提示,防止開發人員誤用方法名。

override重寫,是在子類中重寫父類中的方法,兩個函式的函式特徵(函式名、引數型別與個數)相同。用於擴充套件或修改繼承的方法、屬性、索引器或事件的抽象或虛擬實現。提供從基類繼承的成員的新實現,而通過override宣告重寫的方法稱為基方法。

注意事項:

1.重寫基方法必須具有與override方法相同的簽名。

2.override宣告不能更改virtual方法的可訪問性,且override方法與virtual方法必須具有相同級別訪問修飾符。

3.不能用new、static、virtual修飾符修改override方法。

4.重寫屬性宣告必須指定與繼承的屬性完全相同的訪問修飾符、型別和名稱。

5.重寫的屬性必須是virtual、abstract或override。

6.不能重寫非虛方法或靜態方法。

7.父類中有abstract,那麼子類同名方法必定有override,若父類中有 virtual方法,子類同名方法不一定是override,可能是overload。

8.override必定有父子類關係。

二、多型

1.方法替換:子類中宣告實現和父類同名的方法,使用new關鍵字,建立子類物件,呼叫的是子類中的方法實現

2.方法重寫:子類可以override,父類中使用virtual、abstract或者override修飾的方法,這樣在父類物件接收子類物件時,就可以實現父類物件呼叫子類中的方法,但是如果是正常建立子類物件或者父類物件,他們還是各自呼叫各自內部的方法

3.sealed:如果用來修飾class,表示當前類為密封類不能被其他類繼承;如果用來修飾方法,表示這個方法不能再被其他方法重寫

4.base:方法名,表示執行父類中的該方法一次,一般會在重寫方法時用到。

三、構造方法和構析方法

構造方法:負責開闢記憶體空間,初始化物件

1)構造方法的方法名要和類名一致

2)構造方法沒有返回值,不需要寫void

3)構造方法可以新增引數

4)構造方法允許過載

5)如果沒有類新增構造方法,系統會提供乙個預設的構造方法,這個方法只負責開闢記憶體空間

析構方法:在物件銷毀時使用,用於釋放記憶體

1)每個類只能有乙個析構方法

2)析構方法不能有返回值

3)析構方法不能有訪問修飾符

4)析構方法不能有引數,更不能過載

5)析構方法只能由系統自動呼叫,不能手動呼叫

四、物件導向

面向過程:以事件為中心,關注的是完成事件的詳細步驟,一步一步該怎麼實現

物件導向:以事物為中心,關注的是每個事物具備的行為和特性,而完成該事件只是事物所有功能的一部分功能而已

物件導向的兩個核心概念:

類:具備相同特徵的行為的事物的抽象,就是乙個資料型別,是乙個抽象的概念

物件:類的例項,類的具體表現,生活zhong 萬事萬物都是物件,相當於變數

物件導向的優勢:重用性、靈活性、拓展性

物件導向的三大特徵:封裝、繼承、多型

oo:物件導向

oop:物件導向程式設計

opp:物件導向的程式設計

Unity C 基礎學習02

第二課1.關係運算子 由關係運算子組成的式子叫做關係表示式 關係表示式的結果只有兩個 真 true 假 false 注意 乙個等號表示賦值,兩個等號表示等於,並且兩個等號之間不能有空格 例 int a 1 int b 2 bool result a2.邏輯運算子 與 一假則假 或 一真則真 非 取反...

Unity C 基礎學習03

第三課 學習了許久,也是第一次來整理基礎知識,溫故而知新。接上文,進入迴圈階段 迴圈總結 for迴圈 多用在明確迴圈次數的情況下,而且是以後特別常用的迴圈方式。重點是掌握迴圈的巢狀使用 while迴圈 多用於不明確迴圈次數的情況下,一定要有迴圈結束的標識,先判斷迴圈條件,再執行迴圈體 do.whil...

基於Unity,C 基礎學習(一)資料型別

基礎之資料型別 什麼是資料類 資料型別是程式語言中為了對資料進行描述的定義,因為對於機器不能識別資料,而不同資料間的相互運算,在機器內部的執行方式是不一樣的.這就要使用者先定義資料的特性再進行其它操作.這裡的特性也就是資料型別.資料型別的種類 資料型別分為兩種 引用資料型別和基本資料型別 我們先來講...