抽象类和接口的区别


抽象类

  • 关键字:abstract
  • 成员变量:可以定义任意成员变量(包括各种访问级别的类成员变量和实例变量)
  • 方法:除了抽象方法外还可以定义任意的方法(包括各种访问级别的类方法和实例方法)
  • 使用:抽象类可以被继承(使用 extends关键字)

接口

  • 关键字:interface
  • 成员变量:只能定义公开的静态常量(默认由 public static final 修饰)
  • 方法:只能定义公开且抽象的方法(默认由 public abstract 修饰)
  • 使用:接口可以被实现(使用关键字 implements) 和继承