추상클래스 : 완전하게 구현되어 있지 않은 메소드를 가지고 있는 클래스
추상클래스 언제 사용?
- 관련된 클래스들 사이에서 코드를 공유하고 싶다면 추상 클래스
- 공통적인 필드나 메소드의 수가 많은 경우, 또는 public 이외의 접근 지정자를 사용해야 하는 경우에 추상 클래스
- 정적이 아닌 필드나 상수가 아닌 필드를 선언 하기를 원할 때 추상 클래스
package ex07.ch01;
abstract class 판사 {
public void 심문() {
System.out.println("판사는 심문한다");
}
}
class 왕비 extends 판사 {
}
class 왕 extends 판사 {
}
abstract class 증인 {
public abstract void 대답();
}
class 엘리스 extends 증인 {
@Override
public void 대답() {
System.out.println("엘리스는 대답한다");
}
}
class 모자장수 extends 증인 {
public void 대답() {
System.out.println("모자장수는 대답한다");
}
}
class 토끼 extends 증인 {
@Override
public void 대답() {
System.out.println("토끼는 대답한다");
}
}
class Game {
public void 심문(판사 u) {
u.심문();
}
public void 대답(증인 u) {
u.대답();
}
}
public class AliceApp {
public static void main(String[] args) {
Game g = new Game();
엘리스 s = new 엘리스();
g.대답(s);
}
}
Share article