2020-05-25 Java匿名类


Java匿名类简单用法

  1. 首先需要定义一个接口或者一个类
interface Out {
    public abstract void output();
}
  1. 然后调用这个接口/类
public class Try {
    public static void main(String[] args) {
        Out out = new Out() {//注意:本来接口是不能这样直接实例化的
            @Override
            public void output() {//重写了原接口中的函数
                System.out.println("test Anonymous class.");
            }
        };//这里也要注意要带分号,这个便是匿名类
        //所以说看到这种花括号后面带分号的一般就是匿名类
        out.output();
    }
}
//输出:test Anonymous.
//生成了Try.class和Try$1.class
//如果有多个匿名类的话就还会生成Try$2.class,...,Try$n.class
  1. 总体代码
interface Out {
    public abstract void output();
}
public class Try {
    public static void main(String[] args) {
        Out out = new Out() {
            @Override
            public void output() {
                System.out.println("test Anonymous.");
            }
        };
        out.output();
    }
}
  1. 等价于
interface Out {
    public abstract void output();
}
class Output implements Out {
    public void output() {
        System.out.println("test Anonymous.");
    }
}
public class Try {
    public static void main(String[] args) {
        Out out = new Output();//接口回调
        //Output out = new Output();//和上一行代码等价
        out.output();
    }
}

可以看到,相较于代码4, 代码3中没有直接定义一个实现接口的类,所以就是匿名类

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。