Java覆盖:是否可以覆盖类中的变量?

时间:2020-07-06 03:51:40

标签: java

我们的教授希望我们修改其提供的代码,同时保持其完整性。我想我可以做的是在添加修改时保持代码完整的方法是使用继承和多态性。

公共类ShapesApp扩展了javax.swing.JFrame {

/**
 * Creates new form ShapesApp
 */

Shape [] shapes = new Shape[]
{
    new Circle(new Point(50,60), new Point(130,180)),
    new Rectangle(new Point(50,200), new Point(150,350)),
    new Circle(new Point(200,300), new Point(350,350)),
    new Rectangle(new Point(100,100), new Point(250,250)),
    new Circle(new Point(150,150), new Point(300,300)),        
};
    
Color [] colors = new Color[] {Color.cyan, Color.green, Color.red, Color.blue, Color.magenta, Color.orange};

//更多代码,但与查询无关。

我想知道是否应该做些什么来覆盖上面的代码。

2 个答案:

答案 0 :(得分:0)

您可以创建一个扩展该类的新类,并@Override您想要更改的方法。

对于变量,由于要扩展类,因此应该可以明确地重新声明它们。 (除非它们是私有的)。

答案 1 :(得分:0)

在您的子类中,只需在实例初始化程序块中为变量赋予不同的值即可。

public class YourClass extends ShapesApp {
    {
        shapes = new Shape[]{
            //...
        };
        colors = new Color[]{
            //...
       }
    }
}
相关问题