首先要知道什么是面向对象语言和超类还有接口
面向对象语言
面向对象语言,是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承等成分。
超类
被继承的类成为超类(父类)
接口
计算机系统中两个独立的部件进行信息交换的共享边界。这种交换可以发生在计算机软、硬件,外部设备或进行操作的人之间,也可以是它们的结合。可以理解为一个特殊的抽象类,规定了一个类必须做什么。而其他类继承于它,这些抽象方法就是一个一个的接口
那么面向对象语言接口和超类有什么异同呢
- 接口是公开的,里面没有私有方法和私有变量,是供别人使用的,而超类中可以有私有变量和方法
- 实现接口一定要实现接口里定义的所有方法,抽象类可以选择需要的来重写定义
接口可以实现多重继承,而一个类只能有一个超类
按我的理解,接口就是老师,他教会我们生活中必须要做的事情,老师可以有多个,可以获得多个技能,而超类,就是父亲,肯定只能有一个了
作为动作管理器的接口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不能设计为接口
原因一是它们有私有变量和方法,二是它们的方法都已有明确的定义