为什么在将其分配给Button数组时抛出add(myButton)的结果

时间:2014-03-13 18:18:59

标签: java button

这是代码部分

    b1=new Button("yes");
    b2=new Button("no");
    b3=new Button("maybe");

    bList=new Button[3];
    bList[0]=(Button)add(b1);
    bList[1]=(Button)add(b2);
    bList[2]=(Button)add(b3);

b1,b2,b3和bList []已经被声明。我问的问题是当bList是Button类型而b1 / b2 / b3是Button类型时为什么我需要在分配时将它强制转换为Button他们到bList数组?

2 个答案:

答案 0 :(得分:1)

您调用的add method是从Container继承的。它需要Component,将其添加到自身,并返回相同的Component,因此返回的Component需要返回Button

如果线

,则无需演员表
List[0]=(Button)add(b1);

分为两个陈述(并且更清楚)。

List[0] = b1;
add(b1);

答案 1 :(得分:0)

好吧,我现在明白了。 add()返回一个组件对象。这就是我们需要将它强制转换为Button类型

的原因