接口和抽象类的区别,如何选择?

接口interface和抽象类Abstract Class是面向对象编程中两个重要的概念,他们都可以用来实现抽象层。

接口和抽象类的区别:

方法定义:接口和抽象类最明显的区别是,接口只定义了一些抽象方法,在不考虑java8中的default方法情况下,接口只有抽象的方法,没有实现的代码。java8中可以有默认的方法。

修饰符:抽象类中的修饰符可以有public、protected、private和<default>这些,而接口默认修饰符是public。不可以使用其他修饰符。接口中定义类成员变量还必须要初始化。

构造器:抽象类可以有构造器,接口不可以有构造器。抽象类不可以被直接实例化出来,但是构造器也是有意义的,能起到初始化共有成员变量,强制初始化操作等作用。

继承和实现:接口可以被实现,抽象类可以被继承。

单继承和对实现:一个类可以实现多个接口但只能继承一个抽象类。接口支持多重继承,即一个接口可以继承多个其他接口。

职责不同:接口和抽象类的职责不同,接口主要用于指定规范,抽象类的主要目的是为了复用。

 

posted @ 2025-06-14 13:38  liujiee2  阅读(20)  评论(0)    收藏  举报