阅读量:0
Java 面试常见问题之——抽象类和接口的区别
Java 中抽象类和接口有以下一些区别:
1. 定义方式:
- 抽象类使用 abstract 关键字修饰。
- 接口使用 interface 关键字定义。
2. 继承/实现:
- 类只能继承一个抽象类(单继承)。
- 类可以实现多个接口(多实现)。
3. 成员变量:
- 抽象类可以包含普通成员变量和静态常量。
- 接口中只能定义静态常量(默认使用 public static final 修饰)。
4. 成员方法:
- 抽象类可以包含抽象方法和非抽象方法。
- 接口中的方法默认都是抽象方法(在 Java 8 之后,接口可以有默认方法和静态方法)。
5. 访问修饰符:
- 抽象类中的方法可以使用各种访问修饰符。
- 接口中的方法默认是 public 修饰的。
6. 构造方法:
- 抽象类有构造方法,用于子类对象的初始化操作。
- 接口没有构造方法。
7. 目的:
- 抽象类通常用于定义具有部分实现的基类,为子类提供一些公共的属性和方法。
- 接口主要用于定义行为规范,强调特定的功能或能力。
总的来说,抽象类和接口在 Java 编程中都有其特定的用途,根据具体的需求选择使用。