首先要知道什麼是面嚮對象語言和超類還有接口
面嚮對象語言
面嚮對象語言,是一類以對象作爲基本程序結構單位的程序設計語言,指用於描述的設計是以對象爲核心,而對象是程序運行時刻的基本成分。語言中提供了類、繼承等成分。
超類
被繼承的類成爲超類(父類)
接口
計算機系統中兩個獨立的部件進行信息交換的共享邊界。這種交換可以發生在計算機軟、硬件,外部設備或進行操作的人之間,也可以是它們的結合。可以理解爲一個特殊的抽象類,規定了一個類必須做什麼。而其他類繼承於它,這些抽象方法就是一個一個的接口
那麼面嚮對象語言接口和超類有什麼異同呢
- 接口是公開的,裏面沒有私有方法和私有變量,是供別人使用的,而超類中可以有私有變量和方法
- 實現接口一定要實現接口裏定義的所有方法,抽象類可以選擇需要的來重寫定義
接口可以實現多重繼承,而一個類只能有一個超類
按我的理解,接口就是老師,他教會我們生活中必須要做的事情,老師可以有多個,可以獲得多個技能,而超類,就是父親,肯定只能有一個了
作爲動作管理器的接口ISSActionCallback
public enum SSActionEventType : int { Started, Competeted }
public interface ISSActionCallback
{
void SSActionEvent(SSAction source,
SSActionEventType events = SSActionEventType.Competeted,
int intParam = 0,
string strParam = null,
Object objectParam = null);
}
是不能作爲超類的,原因很簡單,它定義了事件處理接口,所有事件管理者必須實現這個接口來實現時間調度,所以組件事件需實現它,事件管理器也必須實現它,所以只能是接口。從UML圖更好理解
同理,SSAction,SSActionManager不能設計爲接口
原因一是它們有私有變量和方法,二是它們的方法都已有明確的定義