Estoy leyendo un código en Java, con el que no estoy familiarizado, pero parece extraño que si una clase es Deck
(para una baraja de cartas), ya tiene una variable de instancia de una matriz de Cards
, entonces ¿por qué Deck
¿extender o heredar Card
? Pensé que la clase A hereda la clase B solo si A es B (el gato hereda a Animal porque un gato es un animal).En algunos códigos Java, ¿por qué la clase Deck extiende la clase de la Tarjeta?
El código es el siguiente:
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;
}
[...]
}
Me lo ganaste. Buen ejemplo del error de tiempo de compilación. – user949300
¡Siempre juego Poker con mis cartas de Pokemon, lo hago mucho más intenso! – JustSid