01. 다음 빈칸을 채우시오
① 상속은 기존 클래스의 기능을 사용하여 새 클래스를 만드는 기술로, 한 클래스가 다른 클래스의 특징(멤버 메서드와 변수)을 가져오도록 하는 자바 객체지향 프로그래밍의 필수적인 부분이다.
② 부모클래스는 다른 클래스에 멤버 요소(메서드와 변수)를 상속하는 클래스로 상위 클래스, 슈퍼 클래스, 기본 클래스 라고도 한다. 자식클래스는 다른 클래스의 멤버 요소를 상속받은 클래스로 하위 클래스, 서브 클래스, 파생 클래스 라고도 한다.
02. 다음 중 자바의 단순 상속 구문은 무엇인가?
①
// 1번
class A { methods; };
class B extends A { Methods; };
class C extends B { Methods; }; // 다단계 상속
②
// 2번 정답
class A { methods; };
class B extends A { methods }; // 단일(단순) 상속
class Main{ }
③
// 3번
class A { methods; };
class B extends A { methods; };
class C extends A { methods; }; // 계층적 상속
④
// 4번
class A { methods; };
class B { methods; };
class C extends A and B { methods; }; // 자바에서는 다중 상속이 불가능함.(interface는 가능)
03. 클래스가 상위 클래스의 참조 변수로 재정의되면 어떤 데이터 멤버가 인수로 전달되는가?
① 상위 클래스의 데이터 멤버
② 자식 클래스의 데이터 멤버
③ 데이터 멤버가 전달되지 않음
④ 앞의 보기 모두 해당되지 않음
04. 자바에서 다형성을 수행하는 데 사용되는 개념은 무엇인가?
① 메서드 재정의
② 메서드 오 버로딩
③ 메서드 재정의와 메서드 오버로딩
④ 앞의 보기 모두 해당되지 않음
05. 다음 프로그램의 실행 결과는 무엇인가?
class Languages {
void Print() {
System.out.println("프로그래밍 언어");
}
}
class Java extends Languages {
void Print() {
System.out.println("자바는 프로그래밍 언어");
}
}
public class MyClass {
public static void main(String[] args) {
Languages p = new Java();
p.Print();
}
}
① 프로그래밍 언어
② 자바는 프로그래밍 언어
③ Print();
④ 컴파일 오류
-> 부모클래스의 참조변수p가 자식클래스를 참조하는 것은 가능하다(다형성). 따라서 Java클래스를 참조하며 Java 클래스 내에서 오버라이딩 된 Print()메서드가 실행된다.(자식클래스의 참조변수가 부모클래스를 참조하는것은 불가능함)
06. 다음 프로그램의 실행 결과는 무엇인가?
class First {
String a = "JavaBook";
}
class Second extends First {
String a = "JavaProgram";
void Display() {
System.out.println(a);
}
}
public class MyClass {
public static void main(String[] args) {
Second obj = new Second();
obj.Display();
}
}
① JavaBook
② JavaProgram
③ a
④ Display
07. 다음 프로그램에 대한 설명으로 옳은 것은 무엇인가?
class One {
void methodA() {
System.out.println("Method of class A is executed");
}
}
class Two extends One {
void methodB() {
System.out.println("Method of class B is executed");
}
}
class Three extends One {
void methodC() {
System.out.println("Method of class C is executed");
}
}
public class MyClass {
public static void main(String[] args) {
One object = new One();
object.methodA();
object.methodB();
object.methodC();
}
}
① 3개의 클래스는 메서드 내부에 동일한 명령문을 가지고 있다.
② 객체 구문에 예외가 있다.
③ 부모 클래스가 아닌 파생 클래스에 대해 객체를 만들어야 한다.
④ 오류 프로그램이 실행되지 않고 출력이 표시된다.
-> 3번과 헷갈릴 수 있는데, 부모 클래스의 객체를 만든 것에는 문제가 없다. 해당 코드의 문제는 생성한 객체와는 다른 클래스의 메서드를 호출하려고 하는 object.methodB()와 같은 객체 구문에 문제가 있는 것
8. 다음 프로그램의 실행 결과는 무엇인가?
public class MyClass {
void Print(){
System.out.println("JavaBook");
}
void Print(String a) {
System.out.println(a);
}
public static void main(String[] args) {
MyClass m = new MyClass();
m.Print();
m.Print("Java");
}
}
① 메서드 오버라이딩
② 메서드 오버로딩
③ 연산자 오버로딩
④ 생성자 오버로딩
9. 다음 프로그램의 실행 결과는 무엇인가?
class Sample {
void Method() {
System.out.println("슈퍼 클래스 메서드");
}
}
class Example extends Sample {
void Method() {
System.out.println("서브 클래스 메서드");
}
}
public class MyClass {
public static void main(String[] args) {
Sample s = new Example();
s.Method();
}
}
① 슈퍼 클래스 메서드
② 서브 클래스 메서드
③ 예외 처리가 발생한다
④ 컴파일 되었지만 아무것도 출력되지 않는다.
-> Sample 클래스의 참조변수가 Example클래스를 참조함(Sample s = new Example())
참조하는 Example 클래스의 Method()는 "서브 클래스 메서드"로 오버로딩 되었으므로 2번이 정답
10. 다음 프로그램의 main() 메서드에 들어갈 코드는 무엇인가?
class Polymorphism {
void Method1() {
System.out.println("Private Limited");
}
}
class Concept extends Polymorphism {
void Method2() {
System.out.println("Webservices");
}
void Method3() {
System.out.println("DataFlair");
}
}
public class MyClass {
public static void main(String[] args) {
}
}
①
// 1번
// Concept 클래스의 객체를 Polymorphism 클래스의 참조 변수로 참조하고 있으므로,
// Polymorphism 클래스에 있는 메서드들만 접근 가능 (p.Method1();)
Polymorphism p = new Polymorphism();
Polymorphism c = new Concept();
c.Method3(); c.Method2(); p.Method1();
②
// 2번 정답
Polymorphism p = new Polymorphism();
Concept c = new Concept();
c.Method3(); c.Method2(); p.Method1();
③
// 3번
// p.Method3(); p.Method2();은 Polymorphism 클래스에 존재하지 않음
Polymorphism p = new Polymorphism();
p.Method3(); p.Method2(); p.Method1();
④ 주어진 문자열을 직접 출력하기 때문에 main()에 작성할 코드가 없다.
'IT CookBook JAVA 마스터 > 연습문제' 카테고리의 다른 글
IT CookBook JAVA 마스터 Ch.10 연습문제 (0) | 2023.12.11 |
---|---|
IT CookBook JAVA 마스터 Ch.09 연습문제 (0) | 2023.12.11 |
IT CookBook JAVA 마스터 Ch.07 연습문제 (0) | 2023.12.11 |
IT CookBook JAVA 마스터 Ch.05 연습문제 (3) | 2023.10.23 |
IT CookBook JAVA 마스터 Ch.04 연습문제 (0) | 2023.10.23 |