抽象类和接口的异同

169 阅读1分钟

抽象类

我们都清楚在面向对象的概念里,所有的对象都是通过类来进行描述的。但是不是所有的类都是用来描述对象,如果一个类中没有足够的信息来描述一个具体的对象,那么这个类就是抽象类

抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。

由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。

接口

抽象方法的集合,接口通常以 interface 来声明。

类描述对象的属性和方法。接口则包含类需要实现的方法。

区别

1、一个类可以实现多个接口,但是只能继承一个类。
2、抽象类中可以有构造方法,接口则不能。
3、抽象类中的成员变量可以是任意类型的,接口中的成员变量只能是 public static final 类型的。
4、抽象类中可以有静态方法和静态代码块,接口中则不可以。
5、抽象类中可以有方法的实现,接口中则不能。