Почему в некотором коде Java класс Deck расширяет класс Card?

Я читаю какой-то код на Java, с которым я не знаком, но мне кажется странным, что если классDeck(для колоды карт ), в нем уже есть переменная экземпляра массива Cards, так почему же Deckрасширяет или наследует Card? Я думал, что класс A наследует класс B только в том случае, если A является B (Cat наследует Animal, потому что кошка является животным ).

Код ниже:

public class Deck <T extends Card> {
    private ArrayList<T> cards;
    private int dealtIndex = 0; // marks first undealt card

    public Deck() {
    }

    public void setDeckOfCards(ArrayList<T> deckOfCards) {
        cards = deckOfCards;
    }

    public void shuffle() {
        for (int i = 0; i < cards.size(); i++) {

    [...]
}

public abstract class Card {
    private boolean available = true;

    /* number or face that's on card - a number 2 through 10, 
     * or 11 for Jack, 12 for Queen, 13 for King, or 1 for Ace 
     */
    protected int faceValue;
    protected Suit suit;

    public Card(int c, Suit s) {
        faceValue = c;
        suit = s;
    }

    public abstract int value();

    public Suit suit() { 
        return suit; 
    }

    [...]

}
6
задан Jeremy L 24 April 2012 в 03:20
поделиться