완전하게 구현되어 있지 않은 메서드를 가지고 있는 클래스
메서드가 미완성되어 있으므로 추상클래스로는 객체를 생성할 수 없다.
주로 상속 계층에서 추상적인 개념을 나타내기 위한 용도로 사용된다.

package ex07.ch01;
abstract class 판사 {
public void 심문() {
System.out.println("판사는 심문한다");
}
}
class 왕비 extends 판사 {
}
class 왕 extends 판사 {
}
abstract class 증인 {
public abstract void 대답();
}
class 엘리스 extends 증인 {
public void 대답() {
System.out.println("엘리스는 대답한다");
}
}
class 모자장수 extends 증인 {
public void 대답() {
System.out.println("모자장수는 대답한다");
}
}
class 토끼 extends 증인 {
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);
증인 s1 = new 모자장수();
g.대답(s1);
증인 s2 = new 토끼();
g.대답(s2);
판사 u = new 왕();
g.심문(u);
판사 u1 = new 왕비();
g.심문(u1);
}
}
C:\workspace\tools\jdk-21\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2024.3.2.1\lib\idea_rt.jar=51968:C:\Program Files\JetBrains\IntelliJ IDEA 2024.3.2.1\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\workspace\java_lec\study\out\production\study ex07.ch01.AliceApp
엘리스는 대답한다
모자장수는 대답한다
토끼는 대답한다
판사는 심문한다
판사는 심문한다
Process finished with exit code 0
Share article