Java类内部可以定义接口,作用可以看作是对类功能的进一步补充,类里面包含两部分:一部分是自己的固定的,一部分是可以变化的,而这可变的部分就编程了一个接口。
另一个作用是避免命名冲突。
举🌰
类Fruits内部存在接口Apple
public class Fruits {
public interface Apple {
public String info();
}
}
通过匿名内部类方式实现Fruits类中的Apple接口
public class Test {
public static void main(String[] args) {
Fruits.Apple apple = new Fruits.Apple() {
@Override
public String info() {return "I'm an Apple";}
};
System.out.println(apple.info());
}
}
需要注意,内部接口不管有没有声明static,都是静态的。这不同于成员内部类,成员内部类需要依赖其所在类实现的对象。