Java/문제풀이

Java Up/Down Casting 문제 1

pakms980319 2024. 3. 11. 11:47

1. 다음 메서드를 완성하라

Employee 클래스

 

Employee를 상속받은 Parttimer 클래스
Employee 를 상속받은 Regular 클래스

 

main 메서드

 

 

답:

  • 매개변수를 Employee 형태로 받음으로써 Upcasting을 수행한다
  • instanceof 를 통해 객체 타입을 확인하여 downcasting을 수행하여 출력해주었다

2. 다음 클래스에 대해 물음에 답하라.

- private int a;

- public void set(int a) {this.a = a;}

 

- private int a;

- public void set(int a) {this.a = a;}

- protected int b, c;

 

- private int a;

- public void set(int a) {this.a = a;}

- protected int b, c;

- public int d, e;

 

- (1) a = 1;

변수 a의 접근 지정자는 private이므로 상속을 받아도 접근할 수 없다.


3. 자바의 모든 클래스가 반드시 상속받게 되어 있는 클래스는?

 

- 1번 Object


4. 상속을 이용하여 다음 클래스들을 간결한 구조로 재작성하라.

 

답:


5. 다음 중 설명에 적절한 단어를 기입하라.

 

답:


6. 상속에 관련된 접근 지정자에 대한 설명이다. 틀린 것은?

1. Super Class의 private 멤버는 Sub Class에서 접근할 수 없다.

2. Super Class의 protected 멤버는 같은 패키지에 있는 서브 클래스에서만 접근할 수 있다.

3. Super Class의 public 멤버는 모든 다른 클래스에서 접근할 수 있다.

4. Super Class의 default 멤버는 같은 패키지에 있는 모든 다른 클래스에서 접근 가능하다.

 

답:

2번

protected 접근 지정자는 같은 패키지에 있는 서브 클래스 + 다른 패키지에 있는 서브 클래스에서도 접근이 가능하다.


7. 다음 빈칸에 적절한 한 줄의 코드를 삽입하라.

 

답:

super(size);


8. 상속에 있어 생성자에 대해 묻는 문제이다. 실행될 때 출력되는 내용은 무엇인가?

 

답:

A

B: 11


9. 다음 코드에서 생성자로 인한 오류를 찾아내어 이유를 설명하고 오류를 수정하라.

 

답:

생성자 B를 호출할 때 A의 기본 생성자를 호출해야하는데, A에 기본 생성자가 없으므로 B 객체를 생성할 때 오류가 발생할 것이다.

public A() {} 기본 생성자를 만들거나 B에서 super(10); 등 A 클래스의 사용자 정의 생성자를 호출해준다.


10. 다음 추상 클래스의 선언이나 사용이 잘못된 것을 있는 대로 가려내고 오류를 지적하라.

 

답:

(1) - 추상 메서드를 선언할 때는 abstract 예약어를 사용해야한다.

(3) - 추상 클래스를 상속하는 클래스는 추상 메서드를 모두 정의해야한다.

(4) - 추상 메서드의 반환타입은 int인데 구현 메서드의 반환타입이 void이다.


11. 추상 클래스를 구현하는 문제이다. 실행 결과와 같이 출력되도록 클래스  B를 완성하라.

 

답:

 


12. 다음 상속 관계의 클래스들이 있다.

 

 

답:

2, 3

 

 

답:

true

false

 

true

true

=> 모든 객체는 Object를 상속받는다


13. 동적 바인딩에 관한 문제이다. 다음 코드가 있을 때 질문에 답하라.

 

 

답:
Circle

 

 

답:

draw();

 

 

답:

super.draw();


14. 동적 바인딩에 대해 다음에 답하라.

 

 

답:

2 - 추상 클래스는 객체를 생성할 수 없다

 

 

답:


15. 다형성에 대한 설명 중 틀린 것은?

1. 추상 메서드를 두는 이유는 상속받는 클래스에서 다형성을 실현하기 위함이다.

2. 인터페이스도 구현하는 클래스에서 다형성을 실현하도록 하기 위함이다.

3. 다형성은 서브 클래스들이 수퍼 클래스의 동일한 메서드를 서로 다르게 오버라이딩하여 이루어진다.

4. 자바에서 다형성은 모호한 문제를 일으키므로 사용하지 않는 것이 바람직하다

 

답:

4번


16. 다음 중 인터페이스의 특징이 아닌 것은?

 

1. 인터페이스의 객체는 생성할 수 없다.

2. 인터페이스는 클래스와 같이 멤버 변수(필드)의 선언이 가능하다.

3. 인터페이스의 추상 메서드는 자동으로 public이다.

4. 클래스에서 인터페이스를 구현할 때 implements 키워드를 이용하며, 모든 추상 메서드를 작성하여야 한다.

 

답:

2번, 인터페이스는 멤버 변수 선언이 불가능하다.


17. 빈칸을 적절히 채우고, 실행 예시와 같이 출력되도록 클래스 TV에 필요한 메서드를 추가 작성하라.

 

답:


출처

 

https://cs-ssupport.tistory.com/84

 

[명품 Java] 5장 연습문제 (상속)

[5장 1번] 다음 클래스에 대해 물음에 답하라. class A { private int a; public void set(int a) { this.a = a; } } class B extends A { protected int b, c; } class C extends B { public int d, e; } 1. A objA = new objA(); 에 의해 생성되는

cs-ssupport.tistory.com

 

'Java > 문제풀이' 카테고리의 다른 글

Java 문제 풀이 Class  (0) 2024.03.12
Java 상속 문제풀이 1  (0) 2024.03.08
Java 문제 풀이 2  (1) 2024.03.07
Java 문제 풀이 1  (0) 2024.03.06
0. 변수 문제풀이  (0) 2024.02.28