关于内部类和接口的一个示例代码:
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”