相同:
1不能够实例化
2.可以将抽象类和接口类型作为引用类型
3.一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类
不同:
抽象类:
1.抽象类中可以定义构造器
2.可以有抽象方法和具体方法
3.抽象类中的成员可以是private,默认,protected,public
4.抽象类中可以定义成员变量
5.有抽象方法的类必须声明为抽象类,抽象类未必有抽象方法
6.抽象类中可以包含静态方法
7.一个类只能继承一个抽象类
接口:
1.接口中不能定义构造器
2.全部是抽象方法
3.接口中的成员都是public的
4.接口中定义的变量实际上都是常量
5.接口中不能有静态方法
6.一个类可以实现多个接口
什么时候用接口,什么时候用抽象类?
抽象类更重点描述一个概念(主要指对事物的抽象):食物,动物,植物等
接口指某些事物所具有的共同的特征(主要指对行为的抽象):飞,吃等