Java接口和抽象类的区别

📅 2020-10-22 20:09 👁️ 56 💬 0

抽象类

抽象类必须用abstract修饰,子类必须实现抽象类中的抽象方法,如果有未实现的,那么子类也必须用abstract修饰。抽象类默认的权限修饰符为public,可以定义为 public 或 procted,如果定义为 private,那么子类则无法继承。抽象类不能创建对象

接口

接口中的变量隐式的使用public static final 修饰,并且需要给出初始值。方法隐式的使用public abstract修饰(并且只能是 public ,如果是 private,procted,那么就编译报错)。接口中的方法默认不能有具体的实现(JDK1.8开始可以有默认的实现)

抽象类和接口的区别

  • 一个类只能继承一个抽象类(单继承);但可继承多个接口
  • 抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract方法
  • 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
  • 接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;

总结

阅读更多
点击右上角即可分享
微信分享提示