[英]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.