区别抽象类和接口

1.类是对象的抽象,抽象类是类的抽象;接口是对行为的抽象。抽象类是对整体(字段、属性、方法)的抽象,接口只是对类的局部(行为)的抽象。

2.对于一些相似的类对象,可以用抽象类;如果行为跨越不同类的对象,可使用接口。猫、狗都可以继承抽象类动物,但飞机、超人、麻雀分属于不同的类别但又有共同的行为,用接口继承。

3.抽象类是从子类中发现公共的东西,泛化出父类,然后子类继承父类;(自底向上)而接口根本不道子类的存在,方法如何实现还不知道,预先定义。(自顶向下)