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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李春阳 中级黑马   /  2012-6-5 20:02  /  2298 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

下面是代码:
        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呢?

3 个回复

倒序浏览
enum 是一个抽象类,是枚举的所有的公共基类,enumDemo的类型就是一个enum,所以enum就相当于一个修饰符。
个人的理解,希望帮助你理解。
回复 使用道具 举报
enum关键词就有了abstract的含义,因为enum类是不允许其他的类进行创建实例的,
抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类。关于这个问题我建议你可以去看一下
张孝祥老师的 “13_黑马程序员_张孝祥_Java基础加强_用普通类模拟枚举的实现原理”这个视频里面有普通类模拟了一个
枚举类,这里面讲的很清楚,enum修饰的是不能被创建实例的,所以enum本来就有abstract的意思
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马