View.setOnClickListener( new View.OnClickListener(){
@override
public void onClick(View view){
//Some code implementing this method
}
});
此处OnClickListener
是在View内部声明的静态接口。由于它是静态的,因此不会归类为内部类(如果我在这里错了,请纠正我)。
那么我们如何使用匿名类内联实现此静态嵌套接口?
因为,据我所知,它们仅用于内联实现内部类,这些内部类是嵌套类型,而没有用于封闭类型的static关键字。
答案 0 :(得分:1)
首先:内部接口默认为“静态”。不可能有一个不是静态的“内部”接口!有关该方面的更多想法,请参见here。
从这个角度来看,接口就是:接口。无论它们是位于自己的.java文件中的顶级接口,还是位于某个类左右的接口中,都没有关系。
任何接口都可以使用匿名内部类实现。
这实际上就是全部。
回答评论:
那么内联实现,即匿名类本身成为其实现的接口的内部类吗?
否,匿名内部类是环绕它的类的内部类。它恰好实现了一些接口。它不是接口的内部类。内部实际上是指“物理”意义上的含义,例如位于其他代码块中的代码行。
class Outer {
class/interface Inner {
Inner
被称为内部类/接口,因为它位于内部 Outer
。