我需要做以下事情:
class A
int length, width, height;
class B
int length, width, density;
(这些类具有不同的参数非常重要)
这是架构,而不是代码。现在我想创建一个类似的功能:
function compare(class first, class second)
{
if( first.length > second.length )
{ ... }
else
{ ... }
}
并调用该函数:compare(A,B)
。
是否可以像我描述的那样做,或者存在一些更好的方法?
答案 0 :(得分:0)
让课程变得平静。定义一个包含长度和宽度的超类;让它实现Comparable并传入超类只做长度和宽度的比较;然后子类获取你的A和B类,这样你就不会默认比较宽度/高度。
答案 1 :(得分:0)
首先,您定义一个超类A
。
public class A {
private int length;
public A(int length) {
this.length = length'
}
public int getLength() { return length; }
}
创建两个子类,B
和C
。
public class B extends A {
public B(int length) {
super(length);
}
}
public class C extends A {
public B(int length) {
super(length);
}
}
现在您可以创建一个名为“
”的方法public void compare(A first, A second) {
if(first.getLength() > second.getLength()) {
// Do something..
}
}
这可以如下调用:
A b = new B(5);
A c = new C(6);
compare(b, c);