簡體   English   中英

基類擴展和數組

[英]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[]的數組可以容納類型AB對象,因為它們本身是對類型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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM