//聯(lián)系人:石虎?QQ:1224614774?昵稱:嗡嘛呢叭咪哄
一啄巧、概念
1.?定義:“一個(gè)接口,多種方法”胸囱,程序在運(yùn)行時(shí)才決定調(diào)用的函數(shù)祷舀。
2.?實(shí)現(xiàn):C++多態(tài)性主要是通過虛函數(shù)實(shí)現(xiàn)的,虛函數(shù)允許子類重寫override(注意和overload的區(qū)別烹笔,overload是重載裳扯,是允許同名函數(shù)的表現(xiàn),這些函數(shù)參數(shù)列表/類型不同)谤职。
? *多態(tài)與非多態(tài)的實(shí)質(zhì)區(qū)別就是函數(shù)地址是早綁定還是晚綁定饰豺。
? *如果函數(shù)的調(diào)用,在編譯器編譯期間就可以確定函數(shù)的調(diào)用地址允蜈,并生產(chǎn)代碼冤吨,是靜態(tài)的,就是說地址是早綁定的饶套。
? *而如果函數(shù)調(diào)用的地址不能在編譯器期間確定漩蟆,需要在運(yùn)行時(shí)才確定,這就屬于晚綁定妓蛮。
3.目的:接口重用怠李。封裝可以使得代碼模塊化,繼承可以擴(kuò)展已存在的代碼,他們的目的都是為了代碼重用扔仓。而多態(tài)的目的則是為了接口重用褐奥。
4.用法:聲明基類的指針,利用該指針指向任意一個(gè)子類對象翘簇,調(diào)用相應(yīng)的虛函數(shù)撬码,可以根據(jù)指向的子類的不同而實(shí)現(xiàn)不同的方法。