繼承接口和實現, 主要包含三種方式:
1. 只繼承接口, 純虛函數;
2. 繼承接口和實現, 允許覆寫(override), 虛函數;
3. 繼承接口和實現, 不允許覆寫(override), 非虛函數;
1. 純虛函數:
只繼承接口, 但是派生類必須實現其接口;
純虛函數也可以包含實現, 但是只能在指明類(即, class::)的時候使用
2. 虛函數:
繼承接口和實現, 派生類可以覆寫(override), 也可以使用默認版本, 即基函數(base)版本;
純虛函數約束程序更多, 虛函數更靈活;
3. 非虛函數
繼承接口和實現, 強制的提供派生類的實現, 不可以改變, 即不可以覆寫(override);