【发布时间】:2021-04-07 07:02:49
【问题描述】:
在名为“比较器”的超类中有一个比较器。 在子类中,我想比较它的两个对象,如何使用超类的比较器来比较它们?
这个语句在超类中(已经在子类的构造函数中初始化):
final Comparator<Node> comparator;
这个函数在子类中:
/**
* judge wheter pq[i] is less than pq[j]
* @param i
* @param j
* @return true if pq[i] is less than pq[j]
*/
private boolean less(int i, int j) {
}
我想用比较器比较函数'less'中的pq[i]和pq[j],我该怎么做呢?
【问题讨论】:
-
如果
pq是Nodes 的数组,那么您可以像使用任何其他比较器一样使用比较器。它在超类中的事实并不重要。 -
对不起,我是初学者,你能给我看看例子吗?非常感谢!
-
是的,pq是一个Node数组。
-
comparator.compare(pq[i], pq[j]) < 0假设comparator对子类可见 -
@MakeItPossible 看到你提供了父类的0代码,我们怎么知道没有方法可以让子类使用呢?此外,在您的示例中,它是最终成员,而不是私有成员,这使得它可以在子类中使用。如果你真的展示了你的实际代码,而不是“可能看起来有点”的东西,那将是最好的。
标签: java comparator