java - 为没有字段的类创建构造函数
问题描述
我正在尝试创建一个抽象类(Shape)和三个子类(Square、Circle、Triangle),每个子类都没有字段和一个 void 方法——“drawShape”——用星号绘制每个形状。然后,我应该在我的 main 方法中创建每个 Shape 子类对象的数组并循环调用它们的 drawShape 方法。不幸的是,我不断收到错误消息:File: C:\Users\Robert\Demo.java [line: 13]
Error: Syntax error on token(s), misplaced construct(s)
我的问题是如何创建这些 Shape 对象,以及如何实现循环以在这些对象的数组中调用它们的 drawShape 方法。
public abstract class Shape
{
public abstract void drawShape();
}
public class Square extends Shape
{
@Override
public void drawShape()
{
System.out.println("****\n" + "* *\n* *\n****");
}
}
public class Circle extends Shape
{
@Override
public void drawShape()
{
System.out.println(" " + "*" + "\n " + "* *" + "\n " +
"* *" + "\n " + "* *" + "\n " + "*");
}
}
public class Triangle extends Shape
{
@Override
public void drawShape()
{
System.out.println(" " + "*" + " " +
"\n " + "* *" + " " +
"\n " + "***" + " ");
}
}
public class Demo
{
public static void main(String[] args)
{
Triangle triangle = new Triangle();
Circle circle = new Circle();
Square square = new Square();
Shape[] shapes = new Shape{triangle, circle, square};
//How can I properly create this array^
//How can I loop through the array to call each objects drawShape method
}
}
解决方案
像这样:
Shape[] shapes = new Shape[] {triangle, circle, square};
推荐阅读
- animation - 抑制动画两侧的黑色边距
- postgresql - 从边界框(内部和重叠)中提取几何图形并将结果复制到新的空数据库
- node.js - npm 无缘无故安装可选依赖项“chromedriver”
- matlab - 绘制最大值和最小值
- node.js - pkg-config 找不到 gtk+-3.0
- javascript - 由于路径,Global.asax 路由错误 404
- cordova - 在 GopherJS 中获取 Cordova 设备
- php - CodeIgniter 项目的“php artisan serve”等价物是什么?
- linux - 为什么 HashiCorp 的 Vault 需要启用 ipc_lock 功能?
- python - 使用 Github 高效组织 Python 模块