Czytam kod w Javie, który nie jest mi znany, ale wydaje się dziwne, że jeśli klasa jest Deck
(dla talii kart), ma już zmienną instancji tablicy Cards
, więc dlaczego Deck
przedłużyć lub odziedziczyć Card
? Myślałem, że klasa A dziedziczy klasę B tylko wtedy, gdy A jest B (kot dziedziczy zwierzę, ponieważ kot jest zwierzęciem).W jakimś kodzie Java, dlaczego talię klas rozszerza klasę kart?
Kod jest poniżej:
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;
}
[...]
}
Uderzyłeś mnie do tego. Ładny przykład błędu czasu kompilacji. – user949300
Zawsze gram w pokera z moimi kartami Pokemon, dzięki czemu gra jest o wiele bardziej intensywna! – JustSid