[英]base class extending and arrays
我想要一个基类和几个扩展它的类。
然后我想要一个可以是两个扩展类之一的数组。
我希望做这样的事情:
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();
我不确定我是否正确执行此操作或是否允许这样做。
谢谢
您缺少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
好吧,最好的办法就是尝试一下=)至于这个问题,是的,它应该可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.