이 코드에서 생성 된 출력은 이해가 부족하여 이해가되지 않습니다. 만약 내가 잘못Arraylist 출력이 예상대로 아닙니다.
가import java.util.*;
class DemoA
{
public DemoA(){
System.out.println("DemoA object created");
}
public String methodA() {
return "methodA in DemoA";
}
}
class DemoB extends DemoA
{
public DemoB(){
super();
System.out.println("DemoB object created");
}
public String methodA() {
return "methodA in subclass (DemoB)";
}
}
public class ExamQ1b
{
public static void main(String[] args) {
ArrayList<DemoA> aList = new ArrayList<DemoA>();
aList.add(new DemoA());
aList.add(new DemoB());
for (DemoA obj: aList)
System.out.println(obj.methodA());
}
}
출력은
DemoA object created
DemoA object created
DemoB object created
methodA in DemoA
methodA in subclass (DemoB)
가 처음에는 출력에 대한 온 방법 이해하지 못했다 나를 정정하지만 그런 행동을하는 이유 그럼 내가 디버깅 기능을 사용 발견 방법과 혼란 (놀라운되지 않음) 뭔가를 발견했다.
왜 이러한 코드 줄이 출력을 생성합니까? 위의 라인에서
aList.add(new DemoA());
aList.add(new DemoB());
출력이 있지만, 나의이 생각에 그냥 내가 여기서 무엇을 놓치고, 목록 출력을 생성하지에 추가해야합니까? DemoB
의 생성자에서
DemoA object created
DemoA object created
DemoB object created
DemoA (DemoB에서 methodA)에
. –그래도 인쇄 할 필요가있는 이유는 무엇입니까? 목록에 추가하기 만하면됩니다. – noobprogrammer