मैं जावा में कुछ कोड पढ़ रहा हूं, जिसे मैं परिचित नहीं हूं, लेकिन यह अजीब लगता है कि यदि कक्षा Deck
(कार्ड के डेक के लिए) है, तो इसमें पहले से ही Cards
की सरणी का एक आवृत्ति चर है, तो क्यों Deck
Card
का विस्तार या उत्तराधिकारी? मैंने सोचा कि कक्षा ए केवल कक्षा बी को विरासत में लेता है यदि ए बी है (बिल्ली पशु को विरासत में लेती है क्योंकि बिल्ली एक जानवर है)।कुछ जावा कोड में, क्लास डेक कार्ड क्लास का विस्तार क्यों करता है?
कोड के नीचे है:
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;
}
[...]
}
आपने मुझे इसे हराया। संकलन समय त्रुटि का अच्छा उदाहरण। – user949300
मैं हमेशा अपने पोकरमैन कार्ड के साथ पोकर खेलता हूं, इसे और अधिक तीव्र बनाता है! – JustSid