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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈洋 中级黑马   /  2013-8-24 23:45  /  1507 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 forward 于 2013-8-26 21:17 编辑

public enum xxx{
    a,b,c,d
}
想问一下这个枚举类xxx是抽象的吗?还是这个类中有抽象方法了,自动变抽象类。
看高新技术遇到的问题。

评分

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

查看全部评分

10 个回复

倒序浏览
度娘没有。。
回复 使用道具 举报
如果不具体,就是抽象类,你说的abcd是啥意思,题目没写清楚哦
回复 使用道具 举报
想问一下这个枚举类xxx是抽象的吗?还是这个类中有抽象方法了,自动变抽象类。

枚举类xxx不是抽象的,它是一个特殊类
这个XXX类也可以定义抽象方法,但必须实例化对象并且在实例化对象内实现这个抽象方法。

创建enum时,编译器会为你生成一个相关的类,这个类继承自java.lang.Enum.
public abstract class Enum<E extends Enum<E>>
        implements Comparable<E>, Serializable {



评分

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

查看全部评分

回复 使用道具 举报
API是这么描述的public abstract class Enum<E extends Enum<E>>
意思就是说java规定枚举类XXX自动继承了java.lang.Enum,也就是说在使用enum关键字创建新的枚举类型的时,实际上是在创建java.lang.Enum类的子类。Enum这个类是抽象的。

你定义的枚举类XXX内部是可以定义抽象或者普通方法的,但是抽象方法必须得被枚举的元素采用内部类的形式实现。

评分

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

查看全部评分

回复 使用道具 举报
如果您的问题已经解决
请更改分类未解决为已解决
保持队形,谢谢合作

详情参考 如何修改分类
回复 使用道具 举报
陈洋 中级黑马 2013-8-26 00:46:21
7#
HM张博文 发表于 2013-8-24 23:53
如果不具体,就是抽象类,你说的abcd是啥意思,题目没写清楚哦

枚举元素对象
回复 使用道具 举报
陈洋 中级黑马 2013-8-26 00:52:17
8#
xscn 发表于 2013-8-25 02:45
API是这么描述的public abstract class Enum
意思就是说java规定枚举类XXX自动继承了java.lang.Enum,也就 ...

你说的xxx继承的是Enum抽象类,内部可以定义抽象方法也可以定义普通方法,那么这个子类在没有定义抽象方法之前是抽象类还是普通类。大神解惑
回复 使用道具 举报
xscn 高级黑马 2013-8-26 01:07:59
9#
别那么叫大神啊,我也是0基础学的
可以把枚举类看成是一个普通的类,和普通类一样都可以定义一些属性和方法和构造函数,不同之处是:枚举类的构造函数必须是私有的,而且枚举类不能使用extends关键字继承其他类,java单继承的局限性。
回复 使用道具 举报
本帖最后由 陈洋 于 2013-8-26 16:16 编辑
xscn 发表于 2013-8-26 01:07
别那么叫大神啊,我也是0基础学的
可以把枚举类看成是一个普通的类,和普通类一样都可以定义一些属性和方法 ...


那叫高手,那么当枚举类中有抽象方法的时候,你说的:“可以把枚举类看成是一个普通的类”这时的枚举类还是普通类吗?难道是内部自动升级抽象类?
回复 使用道具 举报
枚举跟抽象类没什么关系吧,你定义的ABCD,可以理解为你想定义4个枚举值,每个枚举值就是一个实例。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马