티스토리 뷰
※대학생이 공부하다가 작성한 글입니다※
※정답이 아닐 수도 있습니다※
⊙ 문제 1
상속을 설명한 것이다. 틀린 것은?
- 모든 클래스의 최상위 클래스는 Object이다.
- 부모 객체를 자식 클래스 타입의 변수에 대입할 수 있다.
- 부모 클래스의 private 메서드를 자식 클래스가 오버 라이딩할 수 없다.
- 부모 클래스를 상속하려면 extends 키워드가 필요하다.
⊙ 정답
2번 부모 객체를 자식 클래스 타입의 변수에 대입할 수 있다.
※해설: 부모 클래스 변수에 자식 객체 타입을 대입할 수 있다.(자동타입변환)
⊙ 문제 2
다음 코드가 있다. 밑줄 그은 곳에 적절하지 않은 코드는?
class Car {
public String name;
protected String color;
private int model;
}
class SportsCar extends Car {
boolean turbo;
}
public class CarTest {
public static void main(String[] args) {
SportsCar s = new SportsCar();
______________________
}
}
- s.name = "ferrari";
- s.color = "red";
- s.model = 105;
- s.turbo = true;
⊙ 정답
3번 s.model = 105;
※해설: private 메서드는 부모 클래스 전용이므로 자식 클래스에 상속되지 않는다.
⊙ 문제 3
다음 코드의 실행 결과는? 오류가 발생하면 오류라고 답하고, 그 원인을 이야기하시오.
class Apple { }
class Fox { }
public class Test {
public static void main(String[] args) {
Apple a = new Apple();
System.out.println(a instanceof Fox);
}
}
⊙ 정답
오류
※해설 : 형 변환이 불가능한, 타입이 상위 클래스도 하위 클래스도 아닐 경우에 오류 발생
⊙ 문제 4
접근 제어를 설명한 것이다. 옳은 것은?
- private < package < protected < public
- private < protected < package < public
- package < private < protected < public
- package < protected < private < public
⊙ 정답
1번 private < package < protected < public
※해설
접근 지정자 | 동일 클래스 | 다른 패키지 | 자식 클래스 | 전체 |
public | O | O | O | O |
protected | O | O | O | X |
package | O | O | X | X |
private | O | X | X | X |
⊙ 문제 5
다음 코드에서 오류가 발생하는 행은? 그 이유는?
class Fruit {
String color;
public Fruit(String color) {
this.color = color;
}
}
public class A extends Fruit{
double weight;
public Apple(double weight) {
this.weight = weight;
}
}
⊙ 정답
9행
※해설 : Fruit class에 기본 생성자가 없어서 오류가 발생한다.
⊙ 문제 6
다음과 같은 부모 클래스와 자식 클래스가 있다. 질문에 답하시오.
class Person {
void name() { }
protected void number() { }
void weight() { }
static void show() { }
private void secret() { }
}
class Student extends Person {
public void name() { }
void number() { }
static void weight() { }
static void show() { }
private void secret() { }
}
- Student 클래스의 메서드 중 오류가 발생하는 메서드를 나열하고 원인을 적는다.
- Person 클래스의 메서드 중 Student 클래스가 오버 라이딩한 메서드를 나열한다.
⊙ 정답
1번
오류 메서드 : number(), weight()
number()가 오류가 나는 이유는 부모의 protected에 접근하지 못해서이다.
weight()가 오류가 나는 이유는 자식 클래스의 정적 메서드는 부모 클래스의 인스턴스 메서드를 재정의할 수 없다.
2번
오버라이딩 메서드 : name(), number()
*그렇지만 number()는 access 변경이 필요함(오류 메서드)
weight, show, secret는 Method does not override method from its superclass 오류로 불가.
좋아요는 로그인하지 않아도 누를 수 있습니다!
'쉽게 배우는 자바 프로그래밍 > 연습문제' 카테고리의 다른 글
[쉽게 배우는 자바 프로그래밍] 9장 연습 문제(기본 패키지) - JAVA[자바] (0) | 2021.06.08 |
---|---|
[쉽게 배우는 자바 프로그래밍] 7장 연습 문제(추상 클래스와 인터페이스) - JAVA[자바] (4) | 2021.06.08 |
[쉽게 배우는 자바 프로그래밍] 5장 연습 문제(문자열, 배열, 디버깅) - JAVA[자바] (2) | 2021.06.08 |
[쉽게 배우는 자바 프로그래밍] 4장 연습 문제(객체 지향) - JAVA[자바] (5) | 2021.06.08 |
[쉽게 배우는 자바 프로그래밍] 3장 연습 문제(제어문과 메서드) - JAVA[자바] (2) | 2021.06.07 |
- Total
- Today
- Yesterday
- 파이썬
- 해답
- 그리디
- OS
- 정렬
- BFS
- C++
- 구현
- 정답
- 알고리즘
- java
- 운영체제
- 자바
- 백준
- 답
- 정리
- 풀이
- CPP
- 쉽게배우는자바프로그래밍
- 우종정
- 쉽게배우는
- py
- 연습문제
- Python
- 쉽게 배우는 자바 프로그래밍
- Web
- 자바스크립트
- JS
- 프로그래머스
- 문자열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |