// klasa implementująca stos jako listę powiązaną
public class LinkedStack {

    // Ten statyczny interfejs składowy określa sposób powiązania obiektów.
    // Słowo kluczowe static jest opcjonalne: wszystkie zagnieżdżone interfejsy są statyczne.
    static interface Linkable {
        public Linkable getNext();
        public void setNext(Linkable node);
    }

    // Początek listy jest obiektem Linkable.
    Linkable head;

    // Treść metod została pominięta.
    public void push(Linkable node) { ... }

    public Object pop() { ... }
}

// Ta klasa implementuje statyczny interfejs składowy.
class LinkableInteger implements LinkedStack.Linkable {
    // Poniżej znajdują się dane węzła i jego konstruktor.
    int i;
    public LinkableInteger(int i) { this.i = i; }

    // To są dane i metody potrzebne do implementacji interfejsu.
    LinkedStack.Linkable next;

    public LinkedStack.Linkable getNext() { return next; }

    public void setNext(LinkedStack.Linkable node) { next = node; }
}
