2012-09-13 15 views

Odpowiedz

16

Musi to być klasa zagnieżdżona: słowo kluczowe statyczne w klasie (nie w nim) jest używane tylko (i poprawne pod względem składni) dla klas zagnieżdżonych. Taka statyczna klasa członkowska klasy (aby używać Javy w powszechnej nomenklaturze w skrócie) nie ma odniesienia do klasy otaczającej, a zatem może tylko uzyskiwać dostęp do pól statycznych i metod w niej (w odróżnieniu od nie statycznych, zobacz podsumowanie zagnieżdżonych klas w Javie (znany również jako klas wewnętrznych)

to mogą być dostępne tak:..

public class EnclosingClass { 
    public static abstract class LocationResult{ 
    public abstract void gotLocation(Location location); 
    } 
} 

EnclosingClass.LocationResult locationResult = ... 
+2

Lub może być rozszerzony o inne zagnieżdżone klasy. – assylias

+0

jako początkujący uczę się, że nie możemy stworzyć wystąpienia klasy abstrakcyjnej. Czy istnieje jakakolwiek dokumentacja materiału do nauczenia się tego? –

+0

@YasirKhan Możesz w formie anonimowej klasy. – assylias

3

tylko klasy zagnieżdżone mogą być statyczne Dzięki temu można używać zagnieżdżonych klasy bez wystąpienia zewnętrznego klasie

Można więc utworzyć klasę rozszerzającą ją przy użyciu extends Mainclass.LocationResult i używać go z Mainclass.LocationResult instance = ...

Powiązane problemy