抽象类和接口所侧重的方向不同。抽象类是对对象的描述,接口是对操作的描述。
抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,小鸟,它的抽象类是动物。而小鸟可以飞,飞机也可以飞,所以可以将飞行这个方法定义为接口。
因为一个事物的本质只有一个却可以包含多种操作,所以,在java中类只能单继承,却可以多实现
当你想要描述一个对象时可以用抽象类;而你要描述一个操作时,你就使用接口
抽象类较接口而言会比较难,因为需要将所有子类的共性描述出来。但是接口可以定义多个,所有设计难度会低一些