一、抽象类
1、抽象类定义构造方法,但是不能被实例化
2、抽象类的成员可以用public,protect,defult,private修饰
3、抽象类中可以有具体方法(必须有代码块),抽象方法不能有代码块
4、有抽象方法必须在被声明为抽象类,而抽象类中不一定有抽象方法
5、抽象类中可以有静态方法
6、抽象类中可以定义成员变量
7、一个类只能继承一个抽象方法
二、接口
1、接口没有构造方法
2、接口成员只能用public修饰
3、接口定义的都是抽象方法
4、一个类可以实现多个接口
5、接口中不可以有静态方法
6、接口中的成员变量都是常量
三、相同点
1、都不能被实例化
2、抽象类和接口都可以作为引用类型
3、一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类需要被声明为抽象类。