2017-04-15 203 views

回答

2

是你正確的接口不能有構造函數但是你描述的是匿名類。在這一行中,您正在創建新類的對象,但沒有擴展LocationListener的名稱(並且它的實現位於大括號之間)。 如果你想了解一些更多關於匿名類看這裏:https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html

+0

感謝您的回覆,但爲什麼它需要一個構造函數(LocationListener())? –

1

這是匿名類的方法。爲了說清楚,這裏是一個例子。

interface Animal { 
    public void cry(); 
} 

要創建Animal實例的對象,您需要先實現動物接口。

class Lion implements Animal { 
    public void cry() { 
     System.out.println("Roar"); 
    } 
} 

然後,使用通常的方法創建一個對象:

Animal theLion = new Lion(); 

另一種方法是創建使用匿名類Animal對象。現在

Animal theTiger = new Animal() { 
    public void cry() { 
     System.out.println("Grrr"); 
    } 
} 

,無論對象應該能夠調用cry方法:

theLion.cry(); 
theTiger.cry(); 

乾杯!

+0

感謝您的回覆,但爲什麼它需要構造函數(Animal()),如果在接口中沒有定義構造函數? –

+0

,因爲Anonymous類是聲明類如Lion類的簡寫。 – user1506104

相關問題