2012년 10월 9일 화요일

OCJP 문제풀이 - Question 7

QUESTION 7
Given:

public abstract class Shape {
  private int x;
  private int y;
  public abstract void draw();
  public void setAnchor(int x, int y) {
    this.x = x;
    this.y = y;
  }
}

Which two classes use the Shape class correctly? (Choose two.)

A. public class Circle implements Shape {
      private int radius;
    }
B. public abstract class Circle extends Shape {
      private int radius;
    }
C. public class Circle extends Shape {
      private int radius;
      public void draw();
    }
D. public abstract class Circle implements Shape {
      private int radius;
      public void draw();
    }
E. public class Circle extends Shape {
      private int radius;
      public void draw() {/* code here */}
    }
F. public abstract class Circle implements Shape {
      private int radius;
      public void draw() {/* code here */}
    }

Answer: BE
Section: All

Explanation/Reference:

추상클래스의 개념과 상속에 대해 묻는 문제이다.

추상클래스를 상속할 때는 extends 를 사용하고,
아직 구현되지 않는 메소드를 반드시 구현해야 한다.
다만, 추상클래스를 상속할때도 메소드구현을 미루고 싶다면 상속받는 자신도 추상클래스로 선언하면 된다.

A,D,F : implements 는 인터페이스를 구현할때 쓰인다.
C       : draw() 메소드를 구현해주거나 혹은, 추상클래스로 선언해야한다.

블로그 보관함