印刷可能有人請解釋一下我爲什麼我得到這個輸出我不知道爲什麼A的對象也越來越在最後
package code;
import java.util.ArrayList;
class A {
}
class B extends A {
}
class C extends B {
}
public class ThreadDemo {
public static void main(String[] args) {
ArrayList<A> x = new ArrayList<A>();
ArrayList a = new ArrayList();
x.add(new A());
a = x;
a.add(new B());
ArrayList b = a;
ArrayList<C> c = (ArrayList<C>) b;
c.add(new C());
a.add(new A()); // I am not sure why object of A is also getting printed at the last
for (Object obj : c) {
System.out.println(obj + " class Name " + obj.getClass().getName());
}
}
}
輸出:
----------
[email protected] class Name code.A
----------
[email protected] class Name code.B
----------
[email protected] class Name code.C
----------
[email protected] class Name code.A
----------
我越來越糊塗與輸出lastLine所 –
你只是* *創建兩個'ArrayList'實例,並從'ArrayList的一個新= ArrayList中的第二個();'從不使用,因爲它被丟棄了兩行,而'a'的值被替換。之後,'x','a','b'和'c'都引用了* same *'ArrayList'對象。 – Andreas
如果這不是你期望的輸出,你會期望什麼*,爲什麼? –