總結虛函數 抽象函數
虛函數是有代碼的并明確允許子類去覆蓋,但子類也可不覆蓋,就是說可以直接用,不用重寫???
抽象函數是沒有代碼,子類繼承后一定要重寫
在一個類中用虛函數:???
是因為在超類中的有實際代碼的方法,但明確允許子類可以作重寫???
而且當子類重寫后,可以用子類實例超類;如果這樣,超類變量調用虛函數時,執行的是子類的方法???
????
在一個類中用抽象函數???
是在寫超類時不確定函數的代碼,讓子類去實現???
抽象函數沒有方法體。
?
?
簡單來說虛函數(Virtual)已經包含了也必須包含默認的實現,所以在派生類中可以重新實現也可以不實現這些虛函數。?
抽象函數(abstract)沒有提供默認實現,所以在派生類中必須實現這些抽象函數。?
接口中的函數類似于抽象函數,也不提供默認實現,實現接口的類也必須實現這些函數。?
但接口可用于多繼承,即,類只能從一個類繼承,但可同時實現多個接口。
2019-09-09
總結虛函數 純虛函數
虛函數指在函數聲音時加上關鍵字virtual, 目的是為了給子類對象復寫或者調用,從而實現多態;
純虛函數通常在接口類中定義, 只有聲明,沒有實現,并且給它賦值為0.這種函數在被子類繼承時需要實現該方法,不能直接調用。
2019-09-09
總結的不錯