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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白倩 黑马帝   /  2011-11-1 07:29  /  2087 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

枚举类中可以写抽象方法?那么枚举也是抽象的么?这个问题有点不明白!
不是只有抽象类中才能定义抽象方法么?

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
枚举就是一个抽象类,里面的成员都是它的子类的实例化对象
回复 使用道具 举报
枚举刚了解还没深入学习.来看大家讨论学习的,顶一下!
回复 使用道具 举报
枚举类比较特殊,首先枚举也是一个类,在里面可以定义抽象方法,但是在定义枚举元素时,就必须实现定义的抽象方法,类似于匿名类。如下:
public enum TrafficLamp {
                RED(30){  //在定义枚举元素时,就必须实现抽象方法
                        public  TrafficLamp  nextLamp() {
                                return GREEN;
                        }
                },
                GREEN(45){
                        public   TrafficLamp  nextLamp() {
                                return YELLOW;
                        }
                },
                YELLOW(5) {
                        public  TrafficLamp  nextLamp() {
                        return RED;
                        }
                };
                public abstract  TrafficLamp  nextLamp();

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
是可以定义抽象方法的,
定义了抽象方法后,他的成员(每个实例对象)都要实现定义的抽象方法
但是类名(枚举)中不能用abstract去修饰.这大概是枚举本来是抽象的,就不需要去显示修饰
这就如:在接口中定义方法时,不需要用public修饰

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马