클래스 메인
메인 함수
Ab=newB() //업캐스팅 문제. B() 와 같은 생성자가 있는지 확인하기. 없음. 그 다음줄로 이동.
b.paint()
b.draw()
클래스 에이
페인트 함수
드로우 함수
System.out.print("B")
draw() //자식클래스에서 draw 함수를 재정의해놨기 때문에 자식 클래스 draw 실행해야함. 부모꺼 다시하는거 아님.
클래스 비 상속 에이
페인트 함수
드로우 함수
System.out.print("D")
정답:
BDCDD
클래스 메인
메인함수
Aa=newA() //부모클래스 A() 생성자 찾기.
Ab=newB() //업캐스팅 문제. 자식클래스 B() 생성자 찾기.
b.paint()
b.draw()
클래스 에이
클래스 비 상속 에이
정답:
Constructor of A
Constructor of A //자식생성자 B() 하기 전에 부모 생성자 A()먼저 실행해야함...
Constructor of B
BDCDD
클래스 메인
Ab=newB() //업캐스팅 문제. 자식클래스 B() 생성자 찾기.
클래스 B 상속 A
B() // 자식꺼 먼저 하기 전에 A() 찾아서 실행.
b.paint()
b.draw()
정답:
Constructor of A //부모 먼저 태어남.
ADCD
클래스 메인
Ab=newB(1) //변수 1을 가지고 있는 B가 등장. 같은 모양새의 B(int i)로 간다는 건 알아. 근데 자식 태어나기 전에 부모가 태어나야해. 부모클래스의 기본생성자인 (매개변수가 없는) A()먼저 간다.
b.paint()
b.draw()
클래스 A
클래스 B 상속 A
정답:
생성자 of A //부모 기본생성자 먼저 실행.
생성자 BB1
CD
메인 함수
Ab=newB(1)
b.paint()
b.draw()
클래스 B 상속 A
B(int i)
super(10) //부모클래스 생성자 먼저 생성하려고 보니까 super(10) 있어서 같은 형태의 A(int i)먼저 실행함.
System.out.println("생성자BB"+i)
정답:
생성자 of AA10 //부모클래스 생성자 먼저 태어남.
생성자 of BB1 //자식클래스 생성자 태어남. 여기까지가 B(1) 실행해준 것.
CD
메인함수
Ab=newB(1) //매개 변수 1을 가지고 있는 B. B(int i)로 가야하는 건 알아.
b.paint()
b.draw()
public B(int i)
System.out.println("생성자BB"+i)
super(10) //부모생성자가 뒷줄에 나오면 우짜야할까..? 일단 자식이 태어나야하니 부모생성자 기본형 A()를 먼저 실행하자. 이렇게 안 한다고 하네요 무조건 오류가 난다고 합니다. super()는 무조건 가장 윗줄에 있어야 한다고 하네요.
정답:
에러
생성자 of A
생성자 BB1
생성자 of AA10
CD
<<틀리기 쉬운 문제>>
메인함수
Ab=newB(1)
b.paint()
b.draw()
b.specialDraw() //클래스 B만 가지고 있는 함수임.
정답:
에러
생성자 of AA10
생성자 BB1
CDD //오류가 남. 부모도 함께 가지고 있는 함수를 써야하기 때문임. 부모 함수를 재정의 한 게 아니고 자식만 가지고 있는 함수임.
'정보처리기사 필답 실기. 코딩 문제.' 카테고리의 다른 글
자바 상속 문제 (0) | 2025.05.08 |
---|---|
정적변수, 정적함수 (0) | 2025.05.08 |
자바 상속에서 부모 클래스 먼저 실행 되는 이유 (0) | 2025.05.07 |
자바 ==과 equals 심화문제. (0) | 2025.05.07 |
주말코딩 JAVA 용어 (1) | 2025.05.07 |
댓글