## **接口与抽象类区别**
~~~
接口与抽象类区别
1.相同点
a,都不能创建对象
b,都是作为父类/父接口.(位于继承的顶端,其子类都必须覆盖这些抽象方法)
c,子类/实现类 都必须重新抽象方法,然后才能创建对象
2.不同点
a,抽象类用关键字 abstract 接口用关键字 interface
b,抽象类中可以有抽象方法,可以没有抽象方法,也可以有部分是抽象方法,部分不是抽象方法
接口中只要有方法,必须是抽象的
c,抽象类可以定义任意成员变量,接口成员变量必须是 public static final 修饰,可以省略
d,类和抽象类之间关系是单继承,类和加快之间关系是多实现(弥补单继承的缺陷)
e, 抽象类作为父类,父类必须定义整个继承体系的共性内容
接口定义,整个继承系统 额外 扩展的功能
优先接口类,少用抽象类
需要定义子类的行为,又要为子类提供共性功能时才选用抽象类
~~~
### **抽象类和接口作为方法的参数和返回值**