【发布时间】:2021-10-02 05:50:32
【问题描述】:
我正在尝试为 Sololearn 上的一个项目找出抽象,然后我到达了模块 5。我被要求创建两个类(Square 和 Circle),它们的构造函数都采用参数并设置一个从抽象类继承的抽象方法为了计算面积。我觉得自己真的很愚蠢,因为我无法弄清楚我做错了什么。首先,我尝试在该方法上方编写@Override,因为我认为它会起作用。其次,我尝试将重写的抽象方法的返回类型从 int/double 更改为 void,但在我看来它没有任何意义,因为它应该返回一个数字,无论是 int 还是 double。无论如何,这是代码,希望有人可以阐明这个困境:
import java.util.Scanner;
abstract class Shape {
int width;
abstract void area();
}
//your code goes here
class Square extends Shape{
int area(int width){
return width*width;
}
Square(int width){
width = width;
}
}
class Circle extends Shape{
double PI = 3.14;
double area(int width){
return PI*width*width;
}
Circle(int width){
width = width;
}
}
public class Program {
public static void main(String[ ] args) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int y = sc.nextInt();
Square a = new Square(x);
Circle b = new Circle(y);
a.area();
b.area();
}
}
【问题讨论】:
-
你为什么编辑问题的代码而不更改任何文本?现在文本不再描述代码并且现有问题现在似乎是错误的(因为您修改了他们引用的代码)。
-
对不起,我也会编辑文字
-
第一次在这里发帖,对网站不熟悉
-
@MihailescuFanush 出于 Joachim Sauer 指出的原因,我回滚了您的编辑。
-
昨天忘了非常感谢您的帮助。作为一名初级程序员,我经常发现自己试图理解我写的每个单词的作用,却无法放大并简单地思考这一点,所以我真的很感激
标签: java class inheritance abstract abstraction