inheritance problem

i have the following class that creates a deck of cards using linked list and it works fine

import java.util.LinkedList;

import java.util.Random;

public class CardList implements CardListInterface {

private LinkedList<Card> cardlist = new LinkedList<Card>();

private int size = 0;

public CardList() {

}

public void add(Card c) {

cardlist.add(c);

size++;

}

public void add(Card c, int position) {

if (position > size) {

System.out.println("Out of Range of List");

}

else {

cardlist.add(position - 1, c);

size++;

}

}

public void display() {

for (int i = 0; i < size; i++) {

System.out.print(cardlist.get(i) + " ");

}

System.out.println();

}

public Card draw() {

if (size == 0)

return null;

else {

size--;

return cardlist.removeFirst();

}

}

public Card draw(int position) {

if (size == 0)

return null;

else {

size--;

return cardlist.remove(position - 1);

}

}

public int length() {

return size;

}

public Card look(int n) {

if (size == 0)

return null;

else

return cardlist.get(n - 1);

}

public void shuffle() {

Card temp;

Random rand = new Random();

for (int i = 0; i < size; i++) {

temp = cardlist.getFirst();

cardlist.removeFirst();

cardlist.add(rand.nextInt(size - 1), temp);

}

}

now i want to create another class which implements this class and overrides the add() method, so i wrote this class

public class SortedCardList extends CardList {

public SortedCardList() {

}

public void add(Card c) {

if (this.length() == 0)

**this.add(c);

else

System.out.println("blah blah");

}

public static void main(String[] args) {

SortedCardList a = new SortedCardList();

System.out.println(a.length());

a.add(new Card(Card.Rank.Ace, Card.Suit.Hearts));

System.out.println(a.length());

a.display();

a.add(new Card(Card.Rank.Ace, Card.Suit.Hearts));

a.display();

}

}

but it returns a "java.lang.StackOverflowError" when i try to run the add method(i put a couple of asteriks to mark the exact line above")

pls help.

[2419 byte] By [bababluea] at [2007-10-3 6:47:30]
# 1
> **this.add(c);It is repeatedly and infinitely calling itself. Hence, StackOverflowError should come.Trysuper.add(c);
hiwaa at 2007-7-15 1:37:42 > top of Java-index,Java Essentials,Java Programming...
# 2
thanks, u have no idea how much such a seemingly little oversight has bugged me
bababluea at 2007-7-15 1:37:42 > top of Java-index,Java Essentials,Java Programming...