티스토리 뷰

반응형

※대학생이 공부하다가 작성한 글입니다※

※정답이 아닐 수도 있습니다※


 

⊙ 문제 1

 

상속을 설명한 것이다. 틀린 것은?

 

  1. 모든 클래스의 최상위 클래스는 Object이다.
  2. 부모 객체를 자식 클래스 타입의 변수에 대입할 수 있다.
  3. 부모 클래스의 private 메서드를 자식 클래스가 오버 라이딩할 수 없다.
  4. 부모 클래스를 상속하려면 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();
        ______________________
    }
}

 

  1. s.name = "ferrari";
  2. s.color = "red";
  3. s.model = 105;
  4. 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

 

접근 제어를 설명한 것이다. 옳은 것은?

 

  1. private < package < protected < public
  2. private < protected < package < public
  3. package < private < protected < public
  4. 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() { }
}
  1. Student 클래스의 메서드 중 오류가 발생하는 메서드를 나열하고 원인을 적는다.
  2. Person 클래스의 메서드 중 Student 클래스가 오버 라이딩한 메서드를 나열한다.

 


⊙ 정답

 

1번

오류 메서드 : number(), weight()

number()가 오류가 나는 이유는 부모의 protected에 접근하지 못해서이다.

weight()가 오류가 나는 이유는 자식 클래스의 정적 메서드는 부모 클래스의 인스턴스 메서드를 재정의할 수 없다.

 

2번

오버라이딩 메서드 : name(), number()

*그렇지만 number()는 access 변경이 필요함(오류 메서드)

 

weight, show, secret는 Method does not override method from its superclass 오류로 불가.

 

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함