从扩展类中过度使用变量

时间:2014-10-12 10:45:01

标签: java

虽然我知道我们不能在Java中覆盖变量,但也许有办法以不同的方式做同样的事情。

所以我有一个Base课,有一些东西

class Base
{
    // some stuff here;
}

我有另一个扩展Base类的类,并添加了一些额外的东西

class New1 extends Base
{
    //lots and lots of stuff here

    String[] str = {"a", "b", "c"};

    //lots and lots of stuff here
}

现在我需要一个使用修改后的String[] str作为

扩展类new1的类
String[] str = {"l", "m", "n"};

我无法负担编写从基类扩展并使用修改后的字符串重写所有内容类New1的新类,该类必须来自类new1并使用新的覆盖字符串。

1 个答案:

答案 0 :(得分:0)

如果str受到保护(或包私有且您的新子类与new1位于同一个包中),您可以执行以下操作:

class c extends new1
{
    public c ()
    {
        super();
        str = {"l", "m", "n"};
    }

}

或者,您可以将{"l", "m", "n"}传递给new1的构造函数,这将覆盖str的值。

class c extends new1
{
    public c ()
    {
        super({"l", "m", "n"});
    }

}

你不会覆盖变量,只是改变它的值。