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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题?为什么枚举类里面定义个抽象方法,类名前面不需要加abstract 修饰?

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

2 个回复

倒序浏览
因为枚举是个特殊的类 但他又不是类 它是JDK1.5后出现的一种新机制
枚举也好 注解也好 他们的字节码 实际上是同一类 你可以把枚举看成类似接口的东西
它里面只是实现了抽象方法 和接口不同的是枚举里面要定义具体的实例对象 比如星期
可以定义7个具体对象 从而调用一个叫做nextDay方法
类似的情况在枚举里也有出现
而且注解里属性 也能调用枚举 比如
  1. import java.lang.annotation.ElementType;
  2. import java.lang.annotation.Retention;
  3. import java.lang.annotation.RetentionPolicy;
  4. import java.lang.annotation.Target;

  5. import com.XXX.EnumTest.TrafficLamp;

  6. @Retention(RetentionPolicy.RUNTIME)//这个地方就是注解上面加注解 这种注解也称为元注解
  7. @Target({ElementType.METHOD,ElementType.TYPE})//表示这个注解只能在方法上用
  8. public @interface anniton {
  9.         String color() default "blue";//指定一个默认的颜色
  10. String value();
  11. int[] arrayArr() default {1,2,3};//加一个数组属性
  12. EnumTest.TrafficLamp lamp() default TrafficLamp.RED ;//枚举的默认值是它的一个实例对象
  13. Metaan anarr() default @Metaan("xxx");//返回值类型是一个注解
  14. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
午夜b'Boy 来自手机 中级黑马 2014-2-28 23:22:51
藤椅
枚举可以有抽象方法,每个枚举值都要复写抽象方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马