# 상속을 통한 중복 제거 서로 다른 두 클래스에서 중복 속성을 추려내어 새롭게 상속 관계를 만들 수도 있습니다. 아래는 중복 코드가 존재하는 두 클래스(Product, Pants)의 예입니다. ``` // 상품 클래스 class Product { String name; // 이름 int price; // 가격 // 가격 출력 void printPrice() { System.out.printf("%d원 입니다.\n", price); } } // 바지 클래스 class Pants { String name; // 이름 int price; // 가격 int waistSize; // 허리둘레 // 가격 출력 void printPrice() { System.out.printf("%d원 입니다.\n", price); } // 허리둘레 출력 void printWaistSize() { System.out.printf("허리둘레: %d인치\n", waistSize); } } ``` 위의 클래스를 상속을 통해 새롭게 정의하면 다음과 같습니다. 먼저 근간이 되는 상품 클래스를 그대로 둡니다. ``` // 상품 클래스 class Product { String name; // 이름 int price; // 가격 // 가격 출력 void printPrice() { System.out.printf("%d원 입니다.\n", price); } } ``` 다음으로 Pants 클래스를 정의하는데, 이때 Product 클래스를 기반으로 확장합니다. 다음 코드를 보시면, 중복 코드가 `extends`를 통해 제거되었음을 알 수 있습니다. ``` // 바지 클래스 class Pants extends Product { int waistSize; // 허리둘레 // 허리둘레 출력 void printWaistSize() { System.out.printf("허리둘레: %d인치\n", waistSize); } } ``` 이러한 상속 관계에서, 근간이 되는 클래스를 부모(Parent) 클래스라 부릅니다. 또, 부모 클래스를 통해 확장된 클래스는 자식(Child) 클래스라 합니다. ``` // 부모 클래스 class Parent { ... } // 자식 클래스 - 부모 클래스로부터 파생 class Child extends Parent { ... } ``` ## 문제 주어진 코드는 Animal과 Pet 클래스를 정의하고 있다. 상속을 사용하여 아래 요구 사항을 만족하는 프로그램을 완성하시오. - Animal을 부모, Pet을 자식 클래스로 정의할 것 - 두 클래스에 중복된 코드를 제거할 것 - 출력 예와 같은 결과를 얻을 것 ## 출력 예 ``` Pet { name: 차우차우, age: 3세, price: 2200000원 } ```
관련 강의로 이동

코드: java 1.8

public class InheritanceTest { public static void main(String[] args) { // 객체 생성 Pet dog = new Pet(); /* 4. 객체를 초기화하세요. */ dog.name = "???"; dog.age = 0; dog.price = 2200000; // 정보 출력 System.out.printf("Pet { name: %s, age: %d세, price: %d원 }", dog.name, dog.age, dog.price); } } class Animal { String name; // 이름 public void cry() { System.out.println("동물이 웁니다!"); } } /* 1. Pet 클래스를 Animal로부터 확장 선언 하세요. */ class Pet { /* 2. 부모 클래스 Animal과 중복되는 필드를 제거하세요. */ String name; // 이름 int age; // 나이 int price; // 가격 /* 3. 부모 클래스 Animal과 중복되는 메소드를 지우세요. */ public void cry() { System.out.println("동물이 웁니다!"); } public void play() { System.out.println("애완 동물이 장난을 칩니다~"); } }

입력

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