接口 抽象类
多继承 支持 不支持
类型限制 没有 有,只能是引用类型
方法实现 继承类型中必须给出方法实现 继承类中可以不给出
扩展性 比较麻烦 相对较灵活
多层继承 比较麻烦,需要借助虚函数 比较灵活
回掉 支持 不支持
构造函数 没有 有,虽然不能实例化
抽象实现了把可变与不可变分离。
抽象类: 一种不能实例化而必须从中继承的类。
制定规则,约束子类,传递一些特性给子类。不能被密封,必须为在该类的基类列表中列出接口的所有成员,提供它自己的实现,可以为虚。允许抽象类将接口方法映射到抽象方法上。
接口:类之间交互时遵守的一个协议。
本质就是特殊的抽象类。定义规则,降低耦合。不具备继承的任何特点。