天天看點

Java中接口與執行個體化

一.問題引入         前兩天學代理模式的時候想到的,接口可不可以new呢?         接口是特殊的抽象類,接口的方法都預設為  public  abstract  的。。。 抽象的方法不能new的哦,不能被執行個體化,為什麼new ActionListener(){} 可以?不多說了,直接看資料。 二.若幹資料         Java不能同時繼承多個類,但是可以繼承多個接口;接口可以用來變相的繼承多個類;為什麼new ActionListener(){} 可以這樣,接口可以被new嗎?new ActionListener(){} 這種形式,是要在{}中重寫接口中的方法。接口不能new ,不過可以生成一個匿名類,當然,匿名類不止實作接口這一種。省略了寫一個具體類實作ActionListener接口的開銷。         接口不能直接new,但是它可以作為别的類的變量。如果有類實作了這個接口,則可以new! 舉一個簡單的例子:java.lang.List是一個接口,但是List<String> list=new ArrayList<String>();是沒有任何錯誤的,因為ArrayList實作了List接口。接口程式設計是為了實作多繼承,在java web中的spring架構下用到十分多。 三.簡單例子

-------------------------------------------------------------------------------------------------------------------------