王躍(Java學生)
阿新 • • 發佈:2019-01-28
這是一些語法基礎知識,需要藉助於工具才能快速提高。能與不能,直接寫一個看看即可。
看例子:public interface Humans{ } 如果我們手中沒有Humans的具體例項類,又要在程式中用到一個。比如測試啊什麼的! Object obj=new Humans(){}; 上面的語句是對的,其實不要認為介面能直接例項化了,注意後面還有"{}",這裡其實new出來的是一個Humans的實現類,而在java內部,是一個匿名內部類。 下面再看一個介面: interface Animal
{
void eat();
} 錯誤的形式(編譯都通不過的):
{
public void eat(){
System.out.println("吃東西了!");
}
}; 要直接在new後面跟介面名稱來例項化一個介面是不可能的,還必須保證介面名稱後面有完整的實現體。現在應該明白其實質了吧,我們new其實是操作在匿名內部類上的,不是用在介面本身上。介面本身是不能例項化的! 在一些框架(如EasyJWeb)中,經常使用匿名內部類的方式來寫回調實現,因為其語法比較簡潔,也不會建立一些多餘的沒有獨立能力的類。 當然,作為一般的應用肯定很少用,這需要藉助於開發工具。這些基礎問題他都會提示你,何時對,何時錯!
這也是一直以來困惑我的問題,現在有些明白了!