黑马程序员技术交流社区

标题: 枚举方面的一个问题~ [打印本页]

作者: 李春阳    时间: 2012-6-5 20:02
标题: 枚举方面的一个问题~
下面是代码:
        public enum enumDemo {
                RED{
                        public numDemon ext(){
                                return GREEN;
                        }
                        
                },GREEN{
                        public numDemo next(){
                                return YELLOW;
                        }
                },YELLOW{
                        public numDemo next(){
                                return RED;
                        }
                };
                public abstract numDemo next();  //抽象方法
        }
我记得不应该是类里面方法是抽象的话,类也应该为抽象类吗?
为什么这里类没有加abstract呢?
作者: 何拴绪    时间: 2012-6-5 20:13
enum 是一个抽象类,是枚举的所有的公共基类,enumDemo的类型就是一个enum,所以enum就相当于一个修饰符。
个人的理解,希望帮助你理解。
作者: 王广丛    时间: 2012-6-12 11:36
enum关键词就有了abstract的含义,因为enum类是不允许其他的类进行创建实例的,
抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类。关于这个问题我建议你可以去看一下
张孝祥老师的 “13_黑马程序员_张孝祥_Java基础加强_用普通类模拟枚举的实现原理”这个视频里面有普通类模拟了一个
枚举类,这里面讲的很清楚,enum修饰的是不能被创建实例的,所以enum本来就有abstract的意思




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