第1个回答 2017-03-13
1, 抽象类和接口都代表系统的抽象层;
2, 抽象类和接口都不能被实例化,但都可以继承或者实现抽象类或者接口的具体类,通过定义引用变量来构造;
3, 抽象类和接口都包含抽象方法;
4, 抽象类中可以为部分方法提供默认的实现,可以避免子类中重复实现它们,提高代码的可重用性,接口中只能包含抽象方法;
5, 一个类只能继承一个直接的父类,比如抽象类,但是可以实现多个接口。
6,接口可以对外公开,这样就不会破坏面向对象编程的封装性;
7,抽象类是父类的扩展,也就是说当别人定义了一个抽象类里面方法你可以重写覆盖,重载。
区别:
1、抽象类只能被单继承、接口可以被多实现,避免了单继承的局限性。
2、抽象类中可以定义抽象方法,和非抽象方法,它可以用于定义体系的基本共性的内容。接口中只能定义抽象方法,它主要用于对象的功能的扩展。
3、抽象类是继承关系,是is a关系,接口是实现关系是like a关系。
4、抽象类中的成员修饰符都是自定义的,接口中的修饰符都是固定的。本回答被提问者采纳