接口和抽象类的区别

接口和抽象类的区别:
1.实现接口,继承抽象类。所以看得出接口和抽象类是两个完全不一样的概念。
2.接口的方法声明前没有修饰符,默认public,抽象类的方法必须要有访问修饰符

3.接口只能包括属性,事件,方法,索引器,不能包括字段,常量,构造函数,析构函数,而抽象类可以包括
4.接口里定义的是方法的声明,默认的访问修饰符是public,因为接口存在的意义就是需要类去实现接口,所以所有的方法声明默认的应该是public的。
抽象类里可以有抽象方法,也可以有非抽象方法,抽象方法是没有方法体的,修饰符不能是private和static的。
5.接口主要用于实现分离,抽象类主要用于代码复用。某些方法的声明在接口里定义,由实现类去实现,而抽象类是作为基类的,共同的不会改变的用常规方法实现,子类继承抽象类自然就继承了这一部分的功能,而变化的方法作为抽象方法在子类里重写。

6.抽象类的抽象方法必须要被子类重写,而虚方法是子类可以选择性的重写的。

原文地址:https://www.cnblogs.com/xiaoxinstart/p/13963836.html