java - 我的 Card 类有什么问题,我不希望它是抽象的
问题描述
我必须让这个类具有可比性,这样我才能比较卡片。每次我尝试时,它都会要求我将卡片抽象化,确切的错误是“卡片不是抽象的,并且不会覆盖 Comparable 中的抽象方法 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,则需要实现方法 int compareTo(T o)。否则你的类是不完整的,因此编译器认为它应该是抽象的。
基本上,如果您不希望它是抽象的,请添加此方法:-
@Override
public int compareTo(Card other) {
return <some code to determine which card is "higher">();
}
如果此卡小于、等于或大于other
卡,您的方法应返回负整数、零或正整数。
推荐阅读
- javascript - 无法设置未定义的属性“颜色”
- javascript - 如何在图表中的 y 轴上按固定量间隔值
- java - java中仅每24小时或一天调用一次函数的逻辑
- php - laravel5 创建用于上传照片的自定义磁盘
- sql - SQL 使用 OFFSET / FETCH 获取每个类别的产品
- java - -bash:从命令行运行 Java 程序时出现意外标记“(”附近的语法错误
- excel - 基于星期几的动态工作计划
- c++ - Qt 5.11,QWidget 和创建窗口并连接到信号
- java - 在java中返回多个单词的字符串中的特定单词
- c# - 如何使用时区格式化 url 日期时间参数