Java 中类和接口的区别

2025年3月22日 | 阅读 3 分钟

在 Java 中,类 (class)接口 (interface) 在语法上非常相似,但在各个方面却有所不同。类和接口都包含方法、变量和常量。在本节中,我们将讨论类和接口的区别

什么是类?

类是创建对象的蓝图。它包含变量方法,这些变量和方法定义了对象的属性和行为。

类的示例

在这里,Animal 是一个带有变量 (name) 和方法 (makeSound) 的

使用类的优点

  1. 封装:类将相关数据和方法分组在一起,防止直接访问,并确保更好的数据安全性。
  2. 可重用性:通过继承,可以扩展一个类来添加新功能,而无需修改原始代码。
  3. 灵活性:多态性允许对象呈现不同的形式,使代码更具适应性,易于管理。

什么是接口?

接口就像一个合同,它指定了一个类必须实现的一组方法。它不包含方法的任何实际代码(特殊情况除外)。

接口的示例

在这里,Animal 是一个只声明了一个方法但没有定义其工作原理的接口。

使用接口的优点

  1. 松耦合:接口减少了依赖性,使得在不影响整个系统的情况下更容易修改或替换组件。
  2. 多重继承:一个类可以实现多个接口,从而克服了 Java 的单一继承限制。
  3. 可测试性:接口通过允许模拟实现来简化单元测试,使测试更有效和隔离。

何时使用类或接口?

  • 当我们想要定义具有属性和行为的真实世界对象时,请使用类。
  • 当我们想要强制执行多个类必须遵循的规则时,请使用接口。

Java 类与接口

特性ClassInterface
方法它可以包含普通方法和抽象方法。(Java 8 之前)它只能包含抽象方法。从 Java 8 开始允许使用默认方法和静态方法。
变量它可以包含任何类型的变量。它只能包含 final 和 static 变量。
继承一个类可以扩展另一个类(单一继承)。一个接口可以扩展多个接口(多重继承)。
实施类可以使用 implements 关键字实现接口。接口不能实现另一个接口,只能继承它。
构造函数它可以包含构造函数它不能包含构造函数。
实例化类可以被实例化,即可以创建类的对象。接口不能直接实例化;相反,它由类或结构实现。
多重继承类不支持。通过实现多个接口支持。
访问修饰符它可以具有任何访问修饰符(public、private、protected、default)。方法默认是 public 的。从 Java 9 开始允许 private 方法。
用途它用于定义对象的 state 和 behavior。它用于定义多个类遵循的合同。

类和接口的示例

文件名: Main.java

示例

编译并运行

输出

 
Dog barks
Cat meows   

说明

在此示例中,Animal 接口设定了一个规则,即任何实现它的类都必须定义 makeSound() 方法。Dog 和 Cat 类通过提供它们各自的版本来遵循该规则:一个打印 "Dog barks",另一个打印 "Cat meows"。在 Main 类中,创建了 Dog 和 Cat 的对象,并将它们赋值给 Animal 类型。当调用 makeSound() 时,Java 会动态地为每个对象选择正确的方法。

结论

类和接口在Java中都至关重要,但它们服务于不同的目的。类定义真实世界的对象,而接口建立多个类可以实现的行为合同。理解它们的区别有助于设计健壮且可扩展的应用程序。


下一主题.NET Framework