抽象类表示的是这个对象是什么,接口表示的是这个对象能做什么,表达事务本质的时候使用抽象类,表达事务行为的时候使用接口。
1、抽象类可以有普通方法方法体,接口里面都是抽象方法,没有方法体。
2、抽象类子类使用extends关键字来继承,如果子类不是抽象类那么需要实现抽象父类所有的抽象方法。接口使用关键字implements来实现的,实现接口的类必须实现里面的所有方法,除非使用接口继承接口就不需要进行方法实现。
3、抽象类可以有构造方法。接口不能有构造方法。
4、抽象方法可以有public、protected、private和default这些修饰符。接口类方法只能使用public来修饰。
5、抽象方法可以有main方法并且我们可以运行它。接口没有main方法,因此我们不能运行它。
6、抽象类比接口运行速度更快
7、抽象类中可以有实例变量。接口中只能有静态常量。