匿名内部类和接口

2014-11-24 02:38:24 · 作者: · 浏览: 1

关于内部类和接口的一个示例代码:
interface TestInterface{
void sayHello();
}

public class Test{


//这是内部类
private class TestInnerClass{
//
}

public void say(){
//这是内部匿名类
new TestInterface(){
public void sayHello(){
System.out.println( "hello world !");

}
}.sayHello(); //匿名内部类的对象调用了sayHello()方法
}


public static void main(String []args){

new Test().say();
}
}
上面代码中:我们知道接口是不能被实例化的,但是 这段代码实际上不是对接口的实例化,可以做如下理解:
//这是内部匿名类
new TestInterface(){
public void sayHello(){
System.out.println( "hello world !");
}
}.sayHello(); //匿名内部类的对象调用了sayHello()方法
可以理解为:实际是一个类(匿名的)实现了TestInterface接口,并对sayHello()方法进行了具体实现,然后通过该匿名类的对象调用了 sayHello()方法。所以运行此段代码会输出 hello world !

作者“loading”