繁体   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