gpt4 book ai didi

java - 在具体类中实现抽象方法

转载 作者:行者123 更新时间:2023-11-30 07:26:31 25 4
gpt4 key购买 nike

我的大学项目有类(class)作业,但我正在努力解决抽象类的概念。我意识到拥有它们的原因是创建子类,并且我理解简单的抽象类示例。问题是要求实现一个具体的类 Selector,它实现了抽象方法。

Create an abstract base class, ASelector, with two abstract methods called selectorRange and selectorValue as follows:

  1. the selectorRange method requires two parameters that define the integer range of possible values from min to max (inclusive) with the following signature public abstract void selectorRange( int min, int max );

  2. the selectorValue method returns a randomly generated value in the range from min to max (inclusive) and has the following signature public abstract int selectorValue( );

Create a concrete class, Selector, that implements ASelector with appropriate code to implement both methods.

到目前为止我已经:

public class Selector extends ASelector {

@Override
public void selectorRange(int min, int max) {
min = 1;
max = 10;
}

@Override
public int selectorValue(int min, int max) {

Random r = new Random();
int randomNumber = r.nextInt(max - min) + min;

return randomNumber;

}
}

但是我收到的错误是方法 header 中的选择器。它说我还没有实现抽象方法,但我已经实现了?或者我想我有。任何帮助,将不胜感激。

我的 ASelector 类:

public abstract class ASelector {

public abstract void selectorRange(int min, int max);
public abstract int selectorValue();
}

最佳答案

在您的类别选择器中,您应该存储最大和最小数量

     int max;
int min;

那么你的selectorValue代码应该如下所示:

      public int selectorValue(){
Random r = new Random();
int randomNumber = r.nextInt(this.max - this.min) + min;
return randomNumber;
}

发生的情况是java允许方法重载,这意味着,您可以创建具有相同名称和不同输入属性的方法,并且它们会有所不同。这意味着 public int selectorValue()public int selectorValue(int min, int max) 不同,因此该方法未实现。

由于在选择器中存储了最大值和最小值,您的选择器范围应该如下所示:

    public void selectorRange(int min, int max) {
this.min = min;
this.max = max;
}

这会将您的内部最小和最大变量设置为参数 min 和 max 的值

关于java - 在具体类中实现抽象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36757086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com