Java可以new一个接口吗?


先说结论:接口、抽象类是不可以被new的。

但是今天在写外部比较器Comparator时,我发现有这种写法

// 使用comparator比较器接口
    Comparator comparator = new Comparator(){
        public int compare(Object o1, Object o2) {
            if (o1 instanceof orderNode && o2 instanceof orderNode) {
                orderNode a1 = (orderNode) o1;
                orderNode a2 = (orderNode) o2;
                return a1.val - a2.val;
            }
            return 0;
        }
    };

这不就是new一个接口了吗?

但是注意,后面还有大括号,这相当于一个实现了接口的匿名类,我们需要在其内部{}内把接口的方法实现。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM