2025-02-10

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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *