java 抽象类与接口的区别介绍

抽象类与接口的区别

抽象类

包含抽象方法的类就是抽象类,声明的语句:abstract class
必须是public protected

接口

对行为的抽象,声明语句:interface
抽象方法的修饰符:public abstract
成员变量的修饰符:public static final

语法层面

  1. 抽象类中可以包含成员方法的实现细节,而接口中只能存在抽象方法-public abstract
  2. 抽象类中的成员变量可以是各种类型,接口中的成员变量只能是public static final
  3. 抽象类中可以包含静态方法和静态代码块,接口中不能包含
  4. 一个类只能继承一个抽象类,可以实现多个接口
  5. 访问修饰符不同:抽象类方法的修饰符是public/protected;接口中方法的修饰符必须是public

设计层面

抽象类是对事物的抽象,对类的抽象;接口是对行为的抽象,描述的是一种行为规范

抽象类是对整个类进行抽象描述,包含属性和行为;接口只能对类的行为进行抽象

附上一幅图:

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!