이 프로그램에서는 두 클래스 Super와 Sub이 상속 관계에 있습니다. Super 클래스의 객체를 생성할 때 생성자에 매개변수를 전달하면서, 해당 생성자에서 문자를 출력하고, 상속받은 Sub 클래스에서는 super()를 사용하여 부모 클래스의 생성자를 호출합니다. 결과적으로 “AC”와 “ADB”가 출력됩니다.
class Super {
// 기본 생성자
Super() {
System.out.print('A');
}
// 매개변수가 있는 생성자
Super(char x) {
System.out.print(x);
}
}
class Sub extends Super {
// Sub 클래스의 기본 생성자
Sub() {
super(); // Super 클래스의 기본 생성자 호출, 'A' 출력
System.out.print('B');
}
// 매개변수가 있는 생성자
Sub(char x) {
this(); // Sub 클래스의 기본 생성자 호출, 'A' 출력
System.out.print(x);
}
}
public class codingTest {
public static void main(String[] args) {
// 객체 생성 및 초기화
Super s1 = new Super('C'); // Super 클래스의 매개변수가 있는 생성자 호출, 'C' 출력
Super s2 = new Super('D'); // Super 클래스의 매개변수가 있는 생성자 호출, 'D' 출력
}
}
결과:
ACADB
1. Super s1 = new Super('C'); : Super 클래스의 매개변수가 있는 생성자를 호출하여 ‘C’를 출력합니다. 따라서 ‘A’ + ‘C’ = ‘AC’가 됩니다.
2. Super s2 = new Super('D'); : 다시 Super 클래스의 매개변수가 있는 생성자를 호출하여 ‘D’를 출력합니다. 따라서 ‘A’ + ‘D’ = ‘AD’가 출력된 후에, 'B'가 됩니다.
반응형