我想创建一个类,比如Employee,它实现了通用接口Compariable,并重写了方法equals、hashCode和toString。。。我怎样才能做到呢?
这样可以吗
interface MinMax<T extends Comparable<T>> {
T equals();
T hashCode();
T toString();
}
和
class Employee<T extends Comparable<T>> implements MinMax<T> {
public T equals(){
}
public T hashCode(){
}
public T toString(){
}
}
为此,您不需要创建自己的单独接口。
Equals、hashCode和toString是对象类的方法,您的新类将自动成为该对象类的子类,因此它可以访问这些方法,而无需您执行任何操作。要重写这些方法,只需在新类中创建与这些方法相同名称的方法即可。
Compariable是一个通用接口,因此在有字母T的地方,需要用所需的类替换它。由于您可能希望将该类的一个成员与同一类的另一个成员进行比较,因此您将用Employee替换它。类本身不需要是泛型的,即使它正在实现泛型接口,所以代码中不应该有任何T
“extends”一词是指当您想要创建一个类,而该类是另一个类的子类时。或者当您希望泛型接口中的类是某个类的子类时。你不需要为你的班级做这件事,所以任何地方都不需要extends这个词。
一个类可以实现您想要的任意多个接口,也不需要对它们进行“分组”:
class Employee implements Comparable, MinMax{ ... }
无论如何,您必须提供接口方法实现。
这个问题有两个部分。
第1部分:覆盖equals、hashCode和toString。
只需使用新实现在新类中重新定义这些方法。
class Employee {
//fields and other methods
public boolean equals(Object other) {
//new implementation here
}
public int hashCode() {
//make sure two equal objects produce the same hashCode
}
public String toString() {
//return whatever you want here
}
}
第2部分:实现可比接口。
我想你希望与其他员工进行比较。声明它实现Comparable,并实现接口描述的compareTo方法。
public Employee implements Comparable<Employee> {
//fields and methods
public int compareTo(Employee e) {
//new implementation. Should probably be consistent with equals.
}
}
问题内容: 我必须实现一个RMI服务器,该服务器将成为其他两个RMI服务的前端。因此,我决定逻辑上要做的是使该接口实现其他两个服务的接口。 但是,StudentServer上有一种方法 我也想抛出一个错误,因为该服务还将在尝试添加详细信息之前验证该书是否确实存在。 这是可能的还是我的设计思想完全被取消了,实际上这是一个糟糕的设计思想,好像其他接口都已更改一样?而且,为里面的所有方法编写方法签名会更
谁能解释一下为什么下面的代码不起作用: 但这一个有效: 换句话说,与创建普通类实例相比,接口实现何时是可互换的?当我使用compareTo()方法时会出现错误,该方法是Comparable接口的一部分,由所有包装类(如整数)实现。 所以我猜
当我在浏览上面的接口时,在阅读了许多相同主题的站点后,我对这些接口的语法不是很清楚。 请考虑以下代码段: 如果每个查询都是可理解的。
我是java新手,试图理解一些概念。这是一段我不懂的代码。 我知道这是怎么回事,但不明白为什么这是允许的。因此,我的问题是: 从java文档中,比较器[T]是一个接口。比较器[水果]怎么样?我将假设它是一个类,因为它必须覆盖比较函数。 为什么可以在{}中使用非参数构造函数和类定义来初始化FruitName比较器?我在比较器[T]的javadoc中没有找到这样的构造函数声明。 如有任何意见,将不胜感
本文向大家介绍接口可以在Java中扩展多个接口吗?,包括了接口可以在Java中扩展多个接口吗?的使用技巧和注意事项,需要的朋友参考一下 是的,我们可以做到。一个接口可以扩展Java中的多个接口。 例: 输出:
为什么它这样做,它有一个更好的做法?在sub接口中实现方法有什么区别吗?