java - 我的 Card 类有什么问题,我不希望它是抽象的

标签 java netbeans

我必须让这个类具有可比性,这样我就可以比较卡片。每次我尝试时,它都会要求我将卡片抽象化,确切的错误是“卡片不是抽象的,并且不会覆盖可比较中的抽象方法compareTo(Card)”

        package p2cw1;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Comparator;

public class Card implements Serializable, Comparable<Card> {

    static final long serialVersionUID = 100L;

    public enum Suit {

        CLUBS, SPADES, DIAMONDS, HEARTS
    };

    public enum Rank {

        TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING, ACE
    };

    public Rank rank;
    public Suit suit;
    public Card Compare1;
    public Card Compare2;

    public Card(Rank rank, Suit suit) {
        this.rank = rank;
        this.suit = suit;
    }

    public Rank rank() {
        return rank;
    }

    public Suit suit() {
        return suit;
    }

    public String toString() {
        return rank + " of " + suit;
    }

    public Rank getNext(Rank r) {
        this.rank = r;
        int s = rank.ordinal()+1;
        Card.Rank result = Card.this.rank();
        System.out.println(s);
        return result;
    }
    }

如果我没有将代码正确地放到这个网站上,我深表歉意。第一次使用

最佳答案

如果你的类实现了Comparable,你需要实现方法intcompareTo(T o)。否则你的类是不完整的,因此编译器认为它应该是抽象的。

基本上,如果您不希望它变得抽象,请添加此方法:-

@Override
public int compareTo(Card other) {
    return <some code to determine which card is "higher">();
}

如果此卡小于、等于或大于其他卡,您的方法应返回负整数、零或正整数。

关于java - 我的 Card 类有什么问题,我不希望它是抽象的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54460476/

相关文章:

java - 没有使用位于正确位置的持久性文件命名的 EntityManager 的持久性提供程序

java - Apache Camel 单元测试用例

java - 使用 Spring Boot 进行服务器端渲染 React

java - IOException - XML 解析

netbeans - 尝试将 PHPUnit 与 NetBeans 和 Xampp 结合使用时获取 "Could not open input file"

java - 为什么 java.net.URL.toString 在 EMR AMI 3.8.0 上抛出 NullPointerException?

netbeans - 如何在 Netbeans 7.3 中调出 "Bradcrumbs"导航栏

java - 如何在 mysql 中选择几个相同的数据之一并在 jComboBox java 中查看?

具有多个窗口(JPanel)的Java程序,如何将它们连接到JFrame

Netbeans 源选项卡消失