Rob*_*110 5 java simulation class parent-child
我正在进行物理模拟.
我有一个ArrayList包含模拟中所有对象的东西.我有一个父类:Shape和两个子类:Circle和Rectangle.
当然,父类没有draw()方法,但每个子类都有.因此,当我循环通过列表来绘制每个元素时,它不允许我,因为类中没有draw()方法Shape(因为我将列表定义为ArrayList<Shape>,并且每个新元素都添加一个子类)实例).
有没有办法以一种良好而整洁的方式解决这个问题?
最简洁的前进方式是使用接口。
public interface Shape {
void draw();
}
public class Rectangle implements Shape {
@Override
public void draw() { // draw rect }
}
public class Circle implements Shape {
@Override
public void draw() { // draw circle }
}
Run Code Online (Sandbox Code Playgroud)
如果您希望 Shape 与它的子类共享一些其他逻辑,您可以使用任何附加代码创建一个实现 Shape 的 AbstractShape 类,并使用此抽象类扩展子类。