接口与抽象类的区别?
抽象类:
抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法。
抽象类不能被实例化。
抽象类可以但不是必须有抽象属性和抽象方法, 但是一旦有了抽象方法, 就一定要把这个类声明为抽象类
具体子类必须实现基类的抽象方法
抽象子类可以实现基类的抽象方法,也可以不实现。如果不实现,则其具体子类必须实现它们
接口
接口不能被实例化
接口只能包含方法声明
接口的成员包括方法、属性、索引器、事件
接口中不能包含常量、字段(域)、构造函数、析构函数、静态成员
接口中的所有成员默认为public,因此接口中不能有private修饰符
子类必须实现接口的所有成员
一个类可以直接实现多个接口,接口之间用逗号隔开
一个接口可以有多个父接口,实现该接口的类必须实现所有父接口中的所有成员 |