【问题标题】:abstractor method with object return type in javajava中具有对象返回类型的抽象方法
【发布时间】:2021-12-15 03:25:41
【问题描述】:

我是 oop 的新手,我想传递抽象方法的对象参数,但它给了我错误,任何人都可以向我解释并帮助我修复错误。 感谢您的帮助。

abstract class FunctionInt{
int num1;
int num2;

abstract FunctionInt test(FunctionInt newNum);

}

class Function extends FunctionInt{
public Function(int num1,int num2){
this.num1=num1;
this.num2=num2;
}
public Function (){

}

Function test(Function c){
return c;
}

【问题讨论】:

  • 您更改了test 的签名。你不能这样做并遵守合同。类名也以大写字母开头。 FunctionFunctionInt 有何不同?为什么FunctionInt 是抽象的?你想编程什么行为?
  • @ElliottFrisch 你能帮我纠正一下吗,方法测试应该返回一个对象类型我怎么能用抽象方法做到这一点?
  • 一些错误:构造函数名称应该等于类名称以及为什么要使 FunctionInt 抽象
  • 对 OOPS 概念感到困惑??我会帮你检查我的个人资料并在 Instagram 上给我发消息

标签: java oop abstract-class abstract-methods


【解决方案1】:

您不能更改抽象方法签名。您创建了一个与您要覆盖的方法无关的全新方法。使用@Override 注释可以更快地发现此类错误。

public class Function extends FunctionInt {
    public Function(int num1, int num2) {
        this.num1 = num1;
        this.num2 = num2;
    }

    public Function() {

    }

    @Override
    FunctionInt test(FunctionInt c) {
        return c;
    }
}

【讨论】:

  • 我试过这个,但它也给了我错误!因为 FunctionInt 是抽象的
  • 什么错误?这至少可以编译。
  • 感谢您的帮助,感谢它现在工作
  • @Basta 很高兴听到它。继续编码。最好的学习方式就是去做。
猜你喜欢
  • 2013-04-16
  • 2014-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多