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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© TS__likewise 中级黑马   /  2014-6-17 17:29  /  889 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

interface Contents
{       
         void show(){};
}
public class Test1 {
      public Contents con()
{               
       return new Contents()               
          {
            public void show()                       
          {                               
                 System.out.println("啊啊啊啊啊");                       
          }
         };       
}               
public static void main(String [] args)       
{               
Test1 t = new Test1();               
Contents c = t.con();               
c.show();       
}        
show()方法为什么一定要写明是public的(不然不能运行),难道匿名内部类内部成员默认是private

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

2 个回复

倒序浏览
接口中的变量默认有public static final修饰
接口中的方法默认有public abstract修饰
所以show是抽象方法,不能不方法体
interface Contents
{        
                void show(){};  //应改为void show();
}
子类要覆盖父类中的方法,子类的方法不能比父类的方法权限小,
接口中的show方法默认被public修饰,那么要覆盖这个方法的方法也必须被public修饰

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
(1)首先修正一点,上面的代码只用到了匿名类的用法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马