[Java] 13.1. 추상클래스

김주희's avatar
Feb 26, 2025
[Java] 13.1. 추상클래스
 
package ex07.ch01; abstract class 판사 { //public void 심문(){}; // 어차피 껍데기 뿐이니까 이렇게 만들지 말고 //public abstract void 심문(); // body가 없으면 abstract로 만들기 public void 심문() { System.out.println("판사는 심문한다."); } } class 왕비 extends 판사 { } class 왕 extends 판사 { } // 1. 실수로 new 하지 않도록 2. 강제성 부여 (대답()(O) / answer()(X) abstract class 증인 { // 증인은 new할 일이 없다 -> 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) { // 왕, 왕비 오버로딩하기 싫음 -> 판사 type 쓴다! u.심문(); } public void 대답(증인 u) { u.대답(); } } public class AliceApp { public static void main(String[] args) { Game g = new Game(); 앨리스 s = new 앨리스(); g.대답(s); 판사 ss = new 왕(); g.심문(ss); } }
notion image
Share article

jay0628