方法内部类
方法内部类只在该方法内部可见,方法内部类可以定义在方法中的任何位置。
/**
* 内部类实现接口
*
*/
public class Test2 {
public static void main(String[] args) {
Outer outer = new Outer();
Foo f = outer。
genFoo();
Bar b = outer。genBar();
f。say();
b。readme();
}
}
class Outer {
public Foo genFoo() {
//方法内的内部类
class FooImpl implements Foo {
public void say() {
System。
out。println("say foo!");
}
}
return new FooImpl();
}
public Bar genBar() {
Bar b = null;
if (true) {
//任意位置的内部类
class BarImpl implements Bar {
public void readme() {
System。
out。println("say bar!");
}
}
b = new BarImpl();
}
return b;
}
}
运行结果:
say foo!
say bar!
Process finished with exit code 0
五、匿名类
匿名类不给出类名,直接定义一个类,通常这个类实现了某种接口或者抽象。
匿名类的访问权限更没有讨论价值了,看个例子就行了。
在一些多线程程序中比较常见,有点变态,呵呵。
/**
* 匿名类。
*
*/
public class Test3 {
public Foo f = new Foo() {
public void say() {
System。
out。println("O(∩_∩)O哈哈~!");
}
};。
全部