理解 Java 中 类(Class) 与 接口(Interface) 的基本定义和用途
掌握类与接口在语法、继承机制、成员特性等方面的 核心区别
能够根据实际开发需求,合理选择使用类或接口
熟悉接口自 Java 8 起引入的新特性(如默认方法、静态方法)

在 Java 中,类是创建对象的蓝图。它封装了对象的 属性 和 行为
class Student {
// 实例变量(表示对象的状态)
int id;
String name;
public static void main(String[] args) {
// 创建 Student 对象
Student s1 = new Student();
System.out.println(s1.id); // 输出:0(int 默认值)
System.out.println(s1.name); // 输出:null(引用类型默认值)
}
}说明:该示例展示了类如何保存状态,并通过对象访问其字段。未显式初始化的字段会使用 Java 的默认值。
接口是类的契约,它定义了一组方法签名(即“能做什么”),但不提供具体实现(Java 8 之前)。从 Java 8 开始,接口可以包含 默认方法 和 静态方法
// 声明接口
interface TestInterface {
// 所有变量自动为 public static final
int A = 10;
// 抽象方法(自动为 public abstract)
void display();
}
// 类实现接口
class TestClass implements TestInterface {
// 必须提供抽象方法的具体实现
public void display() {
System.out.println("Coder");
}
}
class MainApp {
public static void main(String[] args) {
TestClass obj = new TestClass();
obj.display(); // 输出:Coder
System.out.println(obj.A); // 输出:10
}
}说明:接口中的常量可被实现类直接使用,而抽象方法必须由实现类重写。
这体现了“接口定义能力,类提供实现”的设计思想。
下表总结了 Java 中类与接口的主要差异:
使用类:当你需要创建具有内部状态和具体行为的对象时。
使用接口:
定义多个不相关类应遵循的通用行为规范
实现多态性和解耦设计
在不破坏现有代码的前提下,为系统添加新功能(通过新增实现类)
最佳实践:优先面向接口编程,这有助于提高代码的灵活性和可维护性。
类是对象的模板,包含状态和行为;接口是能力的契约,只关注方法签名。
类支持单继承,接口支持多继承(通过实现多个接口)。
接口中的所有变量都是常量,所有方法在 Java 8 前必须是抽象的。
自 Java 8 起,接口可通过 default 方法提供默认实现,增强向后兼容性。
接口不能有构造器,也不能被实例化。
为什么 Java 不允许类进行多重继承,却允许一个类实现多个接口?这种设计解决了什么问题?
假设你正在开发一个图形绘制系统,需要支持 Circle、Rectangle 和 Triangle 的绘制。你会如何使用接口来设计这个系统?请写出接口和其中一个实现类的代码框架。
如果一个接口中定义了一个 default 方法,而两个父接口都提供了同名的 default 方法,子类该如何处理?(提示:编译冲突与显式覆盖)