静态嵌套接口的内联实现

时间:2019-06-15 05:53:40

标签: java android interface inner-classes

View.setOnClickListener( new View.OnClickListener(){
    @override
    public void onClick(View view){
            //Some code implementing this method
              }
      });

此处OnClickListener是在View内部声明的静态接口。由于它是静态的,因此不会归类为内部类(如果我在这里错了,请纠正我)。

那么我们如何使用匿名类内联实现此静态嵌套接口?

因为,据我所知,它们仅用于内联实现内部类,这些内部类是嵌套类型,而没有用于封闭类型的static关键字。

1 个答案:

答案 0 :(得分:1)

首先:内部接口默认为“静态”。不可能有一个不是静态的“内部”接口!有关该方面的更多想法,请参见here

从这个角度来看,接口就是:接口。无论它们是位于自己的.java文件中的顶级接口,还是位于某个类左右的接口中,都没有关系。

任何接口都可以使用匿名内部类实现。

这实际上就是全部。

回答评论:

  

那么内联实现,即匿名类本身成为其实现的接口的内部类吗?

否,匿名内部类是环绕它的类的内部类。它恰好实现了一些接口。它不是接口的内部类。内部实际上是指“物理”意义上的含义,例如位于其他代码块中的代码行。

class Outer {
  class/interface Inner {

Inner被称为内部类/接口,因为它位于内部 Outer