關於內部類和接口的一個示例代碼:
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”