抽象类与接口的区别
1、相同:
(1)不能实例化
(2)可以将抽象类和接口作为引用类型
(3)一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类。
2、不同
(1)抽象类:
①抽象类中可以定义构造器
②可以有抽象方法和具体方法
③抽象类中可以定义成员变量
④有抽象方法的类必须声明为抽象类,抽象类不一定有抽象方法
⑤抽象类可以包含静态方法
⑥一个类只能继承一个抽象方法
⑦成员变量可以是private 默认 protected public
(2)接口:
①接口中不能定义构造器
②方法全是抽象方法
③接口中定义的成员变量实际上都是常量
④接口中不能有静态方法
⑤一个类可以实现多个接口
⑥接口中成员变量全是public
3、使用时机
抽象类:描述事务的概念
接口:描述某些事物的共有的特征
hashcode 和 equals