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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张开开 黑马帝   /  2012-3-9 15:53  /  2042 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看下这段代码,张老师基础加强视频中第13个视频中的,老师一直强调是子类,如下:求解???
class  EnumTest
{
        public static void main(String[] args)
        {
                WeekDay weekDay = WeekDay.SUN;
                System.out.println(weekDay.toString());
                System.out.println(weekDay.nextDay());

       
       
        }
}
class abstract WeekDay
{
        private WeekDay(){}
        public static final WeekDay SUN=new WeekDay()  //问下,这里是在子类中复写方法吗??老师在强调子类,可是我怎么没有看出new WeekDay(){}是个子类啊??这不是对象吗??
        {
                public WeekDay nextDay()
                {
                        return MON;
                }
        };
        public static final WeekDay MON=new WeekDay()
        {
                public WeekDay nextDay()
                        {
                                return SUN;
                        }
        };

        public abstract WeekDay nextDay();

评分

参与人数 1技术分 +1 收起 理由
职业规划-刘倩老师 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
就是new出了一个子类对象啊。
WeekDay是一个抽象类,能new吗?
因此new WeekDay(){  实现他的抽象方法 }
这不正是创建了一个子类对象吗。

评分

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

查看全部评分

回复 使用道具 举报
上面应该是abstract class WeekDay吧, new WeekDay(){...};  这是一个匿名内部类,在这里就相当于继承了WeekDay抽象类,就是它的一个子类
回复 使用道具 举报
new WeekDay()  {}这种方式属于一个抽象类或者接口的匿名类的实例化方法,简单来说借口或者抽象类必须由子类继承或者实现其抽象方法才能使用。所以这个SUN就是weekDay的一个子类,只不过匿名类没有自己的类名而已。

在说点就是以子类创建父类的实例。
回复 使用道具 举报
private WeekDay(){}

。。。这不就是类WeekDay的构造方法嘛~~~只不过私有化了,只能内部调用

public static final WeekDay SUN=new WeekDay()  这不就是WeekDay的一个对象实例嘛。没学过单例模式?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马