1)接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,猫、狗是两个类,它们的抽象类是动物。飞机可以飞,鸟也可以飞,可以把飞定义成接口,然后让这些类去实现它。所以当关注一个事物的本质时,用抽象类;当关注一个操作的时候,用接口。
2)接口中所有的方法默认用public abstract来修饰,变量默认使用public static final来修饰;而抽象类没有。
3)接口中的所有方法都是抽象的,而抽象类中的方法可以有具体实现
4)接口可以继承多个接口,一个类也可以实现多个接口,而java中的类是单继承的
5)接口没有构造函数,抽象类可以有构造函数