抽象类接口区别

Posted on By xqw

1.语法层面上的区别

  1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;(java8可以有默认(default)和静态方法,java9可以有私有方法private)

  2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;

  3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;

  4)一个类只能继承一个抽象类,而一个类却可以实现多个接口。

2.设计层面上的区别

抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象