你怎么做一些覆盖?我的书提供了基本的解释,但没有说明如何在代码中实现它,互联网也同样有用。我的指示是......
创建一个名为Rational的Java类: ... 覆盖等于,如果参数的分子和分母完全等于当前对象的分子和分母,则该方法返回true,否则返回false。
我以为我已经弄清楚如何进行覆盖方法,但经过进一步调查后,我觉得我搞砸了。
Rational.Equals(Rational x){
if(x.numerator == a && x.denominator == b)
{
return true;
}
else
{
return false;
}
}
关于如何将其变为覆盖方法的任何提示或良好的阅读?
答案 0 :(得分:0)
简单地说,当子类提供自己的具有相同签名(返回类型,名称和参数类型)的方法的实现作为超类时,方法会覆盖另一个方法,例如:
class SuperClass {
void someMethod() {
// some impl
}
}
class SubClass extends SuperClass {
@Override // @Override annotation not necessary, but good practice
void someMethod() {
// some overriding impl
}
}
答案 1 :(得分:0)
类具有方法,当类扩展另一个类(每个类扩展Object
类)时,它可以声明一个与超类中的签名具有相同签名的方法,因此它被称为覆盖。我想你应该写一些类似的东西:
class Rational {
int numerator, denominator;
@Override
public boolean equals(Object o) {
if (o instanceof Rational) {
Rational rational = (Rational) o;
return numerator == rational.numerator && denominator == rational.numerator;
}
return false;
}
}