# 추상 클래스 추출하기 추상 클래스는 스스로 존재할 수 없으나, 자식 클래스를 통해 간접적으로 생성될 수 있습니다. 따라서 추상클래스도 하나의 부모 클래스이므로, 중복 코드를 최소화할 수 있습니다. ![클라우드스터딩-자바-상속-부모-추상-클래스-추출](https://i.imgur.com/hjIVp2i.gif) ## 문제 주어진 코드로 출력 예와 같은 결과를 얻도록, 아래의 요구사항을 만족하시오. #### 요구사항 - 음료 클래스들의 중복 코드를 토대로 추상 클래스 Drink를 만들 것. - 각 음료 클래스가 Drink를 상속받게 할 것. - 각 음료별 ordered() 메소드를 오버라이딩 할 것. ## 출력 예 ``` [쥬스] 주문되었습니다. [커피] 주문되었습니다. [맥주] 주문되었습니다. [생수] 주문되었습니다. [녹차] 주문되었습니다. ```
관련 강의로 이동

코드: java 1.8

public class Main { public static void main(String[] args) { // 서로 다른 객체 생성 Juice j = new Juice(); Coffee c = new Coffee(); Beer b = new Beer(); Water w = new Water(); Tea t = new Tea(); // 추상클래스를 통한 그룹화 Drink[] drinks = { j, c, b, w, t }; // 그룹화된 객체들의 주문 결과 출력 for (Drink d : drinks) { d.ordered(); } } } /* 1. 추상 클래스 Drink를 작성하세요. */ class Drink { } /* 2. Drink를 상속받고, 쥬스 버전 ordered() 메소드를 재정의 하세요. */ class Juice { String name; double price; public void ordered() { System.out.println("주문되었습니다."); } } /* 3. Drink를 상속받고, 커피 버전 ordered() 메소드를 재정의 하세요. */ class Coffee { String name; double price; public void ordered() { System.out.println("주문되었습니다."); } } /* 4. Drink를 상속받고, 맥주 버전 ordered() 메소드를 재정의 하세요. */ class Beer { String name; double price; public void ordered() { System.out.println("주문되었습니다."); } } /* 5. Drink를 상속받고, 생수 버전 ordered() 메소드를 재정의 하세요. */ class Water { String name; double price; public void ordered() { System.out.println("주문되었습니다."); } } /* 6. Drink를 상속받고, 녹차 버전 ordered() 메소드를 재정의 하세요. */ class Tea { String name; double price; public void ordered() { System.out.println("주문되었습니다."); } }

입력

정답이 궁금하다면? 코드를 제출해보세요!