黑马程序员技术交流社区

标题: 为什么枚举不能继承类呢? [打印本页]

作者: 酱爆    时间: 2013-12-1 14:04
标题: 为什么枚举不能继承类呢?
本帖最后由 酱爆 于 2013-12-1 22:17 编辑

为什么枚举不能继承类呢?知道了详细解答多谢大家了!!!

作者: L_t    时间: 2013-12-1 14:46
可以实现接口,但不能继承类,因为所有枚举类都继承自java.lang.Enum(由编译器添加),同时java不支持多继承。
作者: quan23355    时间: 2013-12-1 15:37
本帖最后由 quan23355 于 2013-12-1 15:38 编辑

所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。只能由接口来实现。
  1. public interface Behaviour {
  2.         void print();
  3.         String getInfo();
  4. }
  5. public enum Color implements Behaviour{
  6.         RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
  7.         // 成员变量
  8.         private String name;
  9.         private int index;
  10.         // 构造方法
  11.         private Color(String name, int index) {
  12.                 this.name = name;
  13.                 this.index = index;
  14.         }
  15. //接口方法
  16.         @Override
  17.         public String getInfo() {
  18.                 return this.name;
  19.         }
  20.         //接口方法
  21.         @Override
  22.         public void print() {
  23.                 System.out.println(this.index+":"+this.name);
  24.         }
  25. }
复制代码

作者: 酱爆    时间: 2013-12-1 22:16
L_t 发表于 2013-12-1 14:46
可以实现接口,但不能继承类,因为所有枚举类都继承自java.lang.Enum(由编译器添加),同时java不支持多继 ...

谢谢!!!
作者: 酱爆    时间: 2013-12-1 22:16
quan23355 发表于 2013-12-1 15:37
所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。只能由接口 ...

谢谢!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2