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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 真真姐 中级黑马   /  2012-4-23 22:15  /  2263 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 真真姐 于 2012-10-21 14:29 编辑
  1. public abstract class WeekDay{
  2.           private WeekDay(){
  3.           }
  4.           public abstract WeekDay nextDay();

  5.          public final static WeekDay SUN = new WeekDay(){ //这讲到了大括号就是子类,有点忘记了,该去怎么理解,请分解代码
  6.                 public WeekgDay nextDay(){
  7.                      return MON;
  8.                 }
  9.          public final static WeekDay MON= new WeekDay(){ //这讲到了大括号就是子类,有点忘记了,该去怎么理解,请分解代码
  10.                 public WeekgDay nextDay(){
  11.                      return SUN;
  12.                 }
复制代码

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

5 个回复

倒序浏览
抽象类不能直接new对象,如果new了对象就一定要是他的子类,并且子类覆盖了父类的所有抽象方法。跟了大括号说明并不是在new抽象类,而是new了一个匿名内部类对象,其父类为抽象类,所以内部需要覆盖父类的抽象方法。
加注释的语句涉及多态,匿名内部类,抽象类相关知识。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 徐鑫 于 2012-4-23 22:38 编辑

public abstract class WeekDay{
          private WeekDay(){
          }
          public abstract WeekDay nextDay();
         public final static WeekDay SUN = new WeekDay(){ //这边是创建一个匿名内部类并赋值给了WeekDay类型的SUN,由于WeekDay是个抽象类,所以要实现它的抽象方法nextDay()
                public WeekgDay nextDay(){
                     return MON;
                }
         public final static WeekDay MON= new WeekDay(){ //同上
                public WeekgDay nextDay(){
                     return SUN;
                }

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
施俊 发表于 2012-4-23 22:23
抽象类不能直接new对象,如果new了对象就一定要是他的子类,并且子类覆盖了父类的所有抽象方法。跟了大括号 ...

太模糊,请把上面的代码分解开,这样的话更直观
回复 使用道具 举报
本帖最后由 真真姐 于 2012-10-21 14:59 编辑
徐鑫 发表于 2012-4-23 22:30
public abstract class WeekDay{
          private WeekDay(){
          }

你这是什么个意思..跟我的代码一摸一样!  张老师说的意思是 有大括号是子类如何理解
回复 使用道具 举报
本帖最后由 真真姐 于 2012-10-21 14:59 编辑

仔细考究了会:可以这样去理解可能分解的更清楚一点:匿名类可以用作接口或抽象类的“实例化”,就像上面那样,看起来像是抽象类被实例化了,其实是存在的一个匿名实现类,是这个匿名类先实现了抽象类,而后才有这个匿名类的实例。

匿名类和内部类常常结合在一起这样使用。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马