A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. 带上了抽象方法的enum枚举,前面为什么没有加abstract修饰符。
  2.         public enum TrafficLamp{
  3.                 RED{
  4.                         public TrafficLamp nextlamp(){
  5.                                 return GREEN;
  6.                         }
  7.                         
  8.                 },GREEN{
  9.                         public TrafficLamp nextlamp(){
  10.                                 return YELLOW;
  11.                         }
  12.                 },YELLOW{
  13.                         public TrafficLamp nextlamp(){
  14.                                 return RED;
  15.                         }
  16.                 };
  17.                 public abstract TrafficLamp nextlamp();
  18.         }
复制代码
就是这样规定的,还是怎么回事?求解答

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

4 个回复

正序浏览
zengming13 发表于 2014-3-19 16:20
因为枚举的父类是Enum,而Enum类被abstract修饰
public abstract class Enum

抽象类不一定要有抽象方法,设定为抽象类只是为了不能被实例化,但有抽象方法一定要加abstract
回复 使用道具 举报
本帖最后由 75100313 于 2014-3-19 19:35 编辑

enum是一个特定的类型,

所有的枚举都是类java.lang.Enum的隐试子类


评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
zengming13 发表于 2014-3-19 16:20
因为枚举的父类是Enum,而Enum类被abstract修饰
public abstract class Enum

枚举不能new对象,是因为枚举的构造函数是private的,跟枚举的成员是对象没mao盾吧。正因为有了枚举的构造函数是私有的,子类不能访问枚举的构造函数,所以不能继承啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马