接口:一系列没有实现方法与常量的组合,提供对方法的封装,但不限制如何实现该方法。
部分规则:
- 接口中的数据成员默认为public static final(即默认为常量)
- 接口中的方法隐含为public abstract
- 不能再声明接口时使用private和proteced修饰符
抽象类:把许多有关的类组织在一起,提供一个公共的类**
部分规则:
- 抽象类中可以有零个或多个抽象方法
- 如果子类不是抽象类,必须实现父类的所有抽象方法
- 抽象类不能创建对象,创建对象的工作交给其派生出来的子类实现
- 抽象子类不能覆盖父类的抽象父类的方法
- abstract不能与final、private、static、final共同修饰
区别:
- 接口中的变量是public final 类型的共有常量,不能修改。抽象类中的变量可以进行修改赋值操作;
- 接口中的方法必须是抽象方法,而抽象类可以不是抽象方法:
- 接口中的变量是public final 类型的共有常量,不能修改。抽象类中的变量可以进行修改赋值操作;
- 接口中的方法必须是抽象方法,而抽象类可以不是抽象方法
- 子类可以实现多个接口,而子类只能继承一个抽象类
- 抽象类可以有不同的访问修饰符,接口默认为public、static、final