多型3. 覆蓋/隱藏
4. 三者區別
sealed關鍵字
繼承:通過繼承,可以建立新的類,以便重用、擴充套件和修改其他類中定義的行為。被繼承的類稱為「基類」,繼承它的類稱為「派生類」。
限制:類只能被單一繼承,但介面可以被多重繼承。特點:可傳遞。
基類中的初始化,由於繼承了基類的成員變數和成員方法,因此父類物件應在子類物件建立之前被建立。
namespace blog1
public
void
getname()
}public
class
student
:people
}public
class
minitor
:student
}static
void
main
(string
args)}}
/*輸出:
people小明初始化
小明people小華初始化
student小華初始化
學生小華
people小紅初始化
student小紅初始化
minitor小紅初始化
班長小紅
*/
多重繼承示範。
namespace blog1
public
void
getname()
}// 介面:交學費
public
inte***ce
tuition
public
class
student
:people
, tuition
public
student
(string name)
:base
(name)
}static
void
main
(string
args)}}
/*輸出:
people小明初始化
小明people小華初始化
student小華初始化
學生小華
學生小華交學費
*/
多型:同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果,這就是多型性。
條件:沒有關鍵字,但必須在同乙個類裡面,利用引數不同來重寫同名稱的方法(只是返回值不同不能做區分)。
namespace blog1
public
void
drive()
public
void
drive
(string car_name)
}static
void
main
(string
args)}}
/*輸出:
小明開車
小明開法拉利
*/
重寫:子類重寫父類的方法,重寫會改變父類方法的功能。
條件:重寫父類的方法必須是虛方法(virtual)、抽象方法(abstract)、重寫方法(override)。而且重寫方法的名稱、引數、返回值都要相同。
格式:子類重寫的方法前面加上override關鍵字修飾。
虛方法(virtual)
虛方法:基類將方法宣告為 virtual 時,派生類可以使用其自己的實現override該方法。
namespace blog1
}public
class
student
:people
}static
void
main
(string
args)}}
/*輸出:
吃飯在學校食堂
在學校食堂
*/
抽象方法(abstract)
抽象方法:如果基類將成員宣告為 abstract,則必須在直接繼承自該類的任何非抽象類中重寫該方法。 如果派生類本身是抽象的,則它會繼承抽象成員而不會實現它們。
namespace blog1
public
class
student
:people
}static
void
main
(string
args)}}
/*輸出:
在學校食堂吃飯
在學校食堂吃飯
*/
抽象方法和虛方法的區別
抽象方法和虛方法的區別:
覆蓋(new):覆蓋又稱為隱藏,只是隱藏了父類中相同名稱的方法,沒有進行重寫。
條件:通過new方法修飾派生類中與基類有相同名稱和引數宣告成員來隱藏基類成員(返回值沒關係),並在方法前加上new關鍵字。如果和原方法的引數不同,就相當於過載了。
namespace blog1
}public
class
student
:people
}static
void
main
(string
args)}}
/*輸出:
吃飯在學校食堂
吃飯 */
重寫會改變父類方法的功能,但覆蓋不會改變父類方法的功能。
過載是在同乙個類裡面,覆蓋和重寫是引用在子類和父類。
可以覆蓋/隱藏虛方法和非虛方法。
sealed修飾類:又稱為密封類,用sealed關鍵字修飾類,讓類不能被繼承。
sealed修飾方法或者屬性:能夠允許類從基類繼承,並防止它們重寫特定的虛方法或虛屬性。但是要注意sealed是對虛方法或虛屬性,也就是同override一起使用,不然會報錯的。
過載繼承多型知識點總結
stl stl容器的操作 size 返回當前容器的元素數量 empty 判斷容器是否為空 make size 返回容器能容納的最大元素數量 begin 返回乙個迭代器,指向第乙個元素 end 返回乙個迭代器,指向最後乙個元素之後 rbegin 返回乙個逆向迭代器,指向逆向遍歷的第乙個元素 rend ...
知識點總結 組合,繼承,多型
一 組合 將乙個類的物件作為另乙個類的成員,被稱作組合或包含 1.將嵌入的物件作為新類的公有成員 class eye class nose class mouth class ear class head int main 2.將嵌入物件作為新類的私有成員 class engine void sta...
多型知識點
多型知識點總結如下 1 含有純虛函式的類稱為抽象類 2 抽象類不可以實現例項化 3 繼承抽象類的函式如果沒有實現所有的純虛函式也為抽象類 4 純虛函式的實現格式 virtual void print 0 5 繼承類在實現純虛函式時,可以略去關鍵字virtual,但一般建議必寫 便於維護 6 乙個虛函...