黑马程序员技术交流社区

标题: 关于匿名内部类 [打印本页]

作者: TS__likewise    时间: 2014-6-17 17:29
标题: 关于匿名内部类
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
作者: 西门吹风    时间: 2014-6-17 18:37
接口中的变量默认有public static final修饰
接口中的方法默认有public abstract修饰
所以show是抽象方法,不能不方法体
interface Contents
{        
                void show(){};  //应改为void show();
}
子类要覆盖父类中的方法,子类的方法不能比父类的方法权限小,
接口中的show方法默认被public修饰,那么要覆盖这个方法的方法也必须被public修饰

作者: 唐杰亮    时间: 2014-6-17 18:43
(1)首先修正一点,上面的代码只用到了匿名类的用法。




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