Java enum 继承和接口

在学习本教程之前,请确保您了解


从枚举类继承类

在Java中,枚举类默认是final的。因此,我们不能从中继承其他类。例如,

enum A {
  // enum constants
  // fields and methods
}

class B extends A {
  public static void main(String[] args) {
    // statements
  }
}

# Error: cannot inherit from final A

从另一个类继承枚举类

在Java中,我们不能扩展枚举类。这是因为Java中的所有枚举都继承自java.lang.Enum。而在Java中不允许继承多个类(多重继承)。

例如,

class A {
    // class body
}

enum B extends A {
   // class body
}

这将产生一个错误。


Java 枚举与接口

正如我们所学,在Java中我们不能继承枚举类。但是,枚举类可以实现接口。

示例:枚举实现接口

interface Pizza {
 public void displaySize();
}

enum Size implements Pizza {
 SMALL, MEDIUM, LARGE, EXTRALARGE;

 public void displaySize() {
   System.out.println("The size is " + this);
 }
}

class Main {
 public static void main(String[] args) {
  Size.MEDIUM.displaySIze();
 }
}

输出

The size is MEDIUM

在上面的示例中,我们创建了一个名为Size的枚举类。该类实现了Pizza接口。

由于我们实现了接口,我们在枚举类中提供了抽象方法displaySize()的实现。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战