首先来一道匿名内部类的面试题开开荤吧。
java
interface Inter {
void show();
}
class Outer {
//补齐代码
public static Inter method() {
return new Inter() {
public void show() {
System.out.println("hello");
}
};
}
}
public class OuterDemo {
public static void main(String[] args) {
Outer.method().show(); //"HelloWorld"
}
}
关于上面的代码,有几点事需要注意的
- 关于方法的重写,因为接口中的方法默认事public abstract的,所以重写的接口也得事public,如果笔试的时候可能会因为没注意而犯错。
- 这里是列表文本return总的来说还是一个完整的语句,需要在最后的}结尾加上;,这个是很容易疏漏的一点,虽然编译器会提醒,但是没有编译器的时候就比较尴尬。
这是内部类的创建:Out.In in = new Out().new In() 这是静态内部类的创建:Out.In in = new Out.In()