當多個類有很多相似的資料,比如在乙個在遊戲中,boss類和小怪enemy類,他們都有存在hp這個屬性,但是也存在不同的地方,這個時候可以使用繼承來維護的=這兩個類。繼承的型別:
怪物基類baseenemy
class baseenemy
get
}public
float speed
get
}public
void
ai()
public
void
move()
}
子類boss
class boss:baseenemy //繼承有怪物基類
}
主函式:
class
program
}
執行結果:
這是基類的ai方法
這是基類的移動方法
這是boss特有的攻擊方法
父類宣告的物件可以用子類去構造,但是子類宣告的物件不能用父類去構造例子:
baseenemy baseenemy =new boss();
boss boss = (boss)baseenemy;
boss.attack();
虛函式不一定要重寫
當多個怪物類擁有不同的動畫系統時,基類就可以使用虛方法的形式供子類呼叫,子類負責重寫虛方法,然後完善各自的細節父類baseenemy:
public
virtual
void
animataion() //提供子類重寫的虛方法
子類boss:
public
override
void
animataion()
呼叫結果:
boss boss = new boss();
boss.animataion();
//呼叫結果:
//這是boss特有的動畫
抽象方法必須要重寫抽象類不能例項化,抽象類可以包含乙個普通函式和抽象函式,抽象函式只有函式定義沒有函式體。
對於類,這表示不能繼承該類。對於方法,表示該方法不能重寫
特點:
可以防止重寫某些類導致**混亂
protect受保護的方法,只有派生類才可以呼叫
static 靜態方法,只能通過類名訪問
每個類可以實現多個的介面,但是只能繼承乙個類
介面類:
inte***ce
ifly()
實現類:
class brid : ifly
}
定義乙個泛型就是指,定義乙個類,這個類中的某些欄位的型別是不確定的,這些型別可以在建構函式的時候確定下來
定義乙個帶有建構函式的泛型類:
class generic//定義乙個泛型t的資料型別,在建構函式的時候確定t的型別
class generic//定義乙個泛型t的資料型別,在建構函式的時候確定t的型別
public
void
getsum() //引數的相連
}
主程式:
class
program
}
執行結果:
string getsum(t1 a,t2 b) //帶有兩個形參的泛型方法
主程式:
static
void main(string args)
輸出結果:
1 3.14159
C 基礎知識 (2)
目的 在類中,不希望某些資料被修改,可以用const關鍵字加以限定 初始化 const 成員變數只有一種方法,就是通過建構函式的初始化列表 建構函式初始化列表 student student char name,int age,float score m name name m age age m ...
C 基礎知識(2)
c 基礎知識 1.預設引數函式 c語言中在函式呼叫時形參從實參取得,但是在c 中提供一種簡單處理方法給形參乙個預設值,當呼叫函式時,若該形參未傳入引數,則形參使用定義時的預設值。ps 注意傳參規則 實參與形參的結合是從左到右順序進行,所以有預設值的形參必須放在最右側。2.函式過載 c 中乙個函式名可...
c 基礎知識 2
物件導向的三大特徵之一 封裝 具體來說,封裝隱藏了類內部的具體實現細節,對外則提供統一訪問介面,來操作內部資料成員。這樣實現的好處是實現了ui分離,程式設計師不需要知道類內部的具體實現,只需按照介面協議進行控制即可。同時對類內部來說,封裝保證了類內部成員的安全性和可靠性。也就是說,封裝就是乙個包裝,...