1

我想要一个基类和几个扩展它的类。

然后我想要一个可以是两个扩展类中的任何一个的数组。

我希望做这样的事情:

class Base{  }
class A extends Base {}
class B extends Base {}

然后我想要一个可以是 A 或 B 的数组,所以我在数组声明中使用 Base

Base[] it = Base[2];

it[0] = new A();
it[1] = new B();

我不确定我这样做是否正确或是否允许。

谢谢

4

2 回答 2

6

您缺少new关键字:

Base[] it = new Base[2];

除此之外 - 方法很好。类型数组Base[]可以保存类型A和的对象B,因为它们本身就扩展了类型Base

例子:

static public class Base { 
    public void foo() { 
        System.out.println("I am base");
    }
}
static public class A extends Base { 
    @Override
    public void foo() { 
        System.out.println("I am A");
    }
}
static public class B extends Base { 
    @Override
    public void foo() { 
        System.out.println("I am B");
    }
}

    public static void main(String[] args) {
        Base[] arr = new Base[2];
        arr[0] = new A();
        arr[1] = new B();
        arr[0].foo();
        arr[1].foo();
    }

正如打印中预期的那样,将导致:

I am A
I am B
于 2012-09-07T11:51:43.180 回答
0

好吧,最好的办法是尝试一下 =) 至于问题,是的,它应该可以工作。

于 2012-09-07T11:52:51.850 回答