欢迎光临散文网 会员登陆 & 注册

匿名内部类

2022-06-26 19:56 作者:虚云幻仙  | 我要投稿

/**
* 测试匿名内部类
*/

public interface Running{
   //定义一个接口
   void run();
   //接口默认public abstract
}

class Outer3{
   public void go(Running r){
       //这里只是调用public接口并不是实现接口
       //接口引用变量r 不是new接口 接口不可以new
       //形参r对应的实参是接口的实现类的对象

       r.run();
   }
   public static void main(String[] args) {
       Outer3 o3 = new Outer3();
       o3.go(new Running(){
           //这里是new了一个接口Running的实现类(没有名字) 即匿名内部类
           // 这么new是因为只想在这里使用一次 后续不再调用 所以不需要单独创建实现类再调用进来
           //new ()是类的构造方法 ()后的{}是类的类体 内部和普通的类写法一样


           public void run(){
               //重写实现run()方法
               //接口方法是public 实现方法要加public

               System.out.println("匿名内部类没有名字,后续也不会再被调用,这里用完即丢掉");
           }
           //只需要实现接口的抽象方法 类就可以创建了
       });
       //构造方法及类体包裹在o3.go方法的()中

   }
}

匿名内部类的评论 (共 条)

分享到微博请遵守国家法律