匿名类,匿名内部类

2018-11-13  本文已影响0人  左右_d488
很多在学习JAVA基础的时候总会遇到一个问题,这个匿名内部类为什么只能用一次呢?他到底是什么玩意儿?为什么这里会new一个接口???这什么呀这是!

首先我们来看一下内部类的定义:

再来看一下匿名类的定义:

上文都说匿名内部类就是没有名字的内部类,哪个类没有名字呢?好多文章都是直接告诉你什么什么是匿名内部类,如下面:

我们一般会用来做参数的传递, 直接用接口来做

public interface D {
     void run();
     }
public class B{
@Override
public void run(D d) {
      d.run();
     }
   }

看到这里是不是还是很疑惑,为什么接口也能new了呢?其实不然,在我们写一个内部类的时候,我们是省略了一些东西的

public class cryptonym {
    public static void main(String[]args) {
        B b=new B();
        //调用时使用匿名类创建匿名对象
        b.show(new D(
            public void run() {
                System.out.println("hello");){
            }
        });
    }
}

这样来看是不是就明了许多了?其实本意就是继承了D这个接口之后,重写了其中的方法。只不过我们再代码中对这个类使用的次数不多。所以我们不需要再去写一个继承的类,来加大JVM的工作量,是不是很有意思。大家还有更多想知道的内容欢迎在下方留言或者加入我们的群来跟我一起探讨一下(850353792)

上一篇 下一篇

猜你喜欢

热点阅读