평생 소장! 19,800 원 15,000 원(계좌이체 구매 한정)


기업은행: 206-021800-01-029

예금주: 박세홍


카톡 ID: chaesam(카톡 아이디 검색 후, 문의 주세요!)

이메일: [email protected]

# 상속을 통한 중복 제거 #### 상속의 이점 서로 다른 두 클래스에 중복 속성을 상속을 통해 제거할 수 있습니다. ![클라우드스터딩-자바-상속을-통한-코드-중복-제거](https://i.imgur.com/7cHGRJL.png) #### 활용 예 아래는 중복 코드가 존재하는 두 클래스(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 클래스를 기반으로 확장합니다. 다음 코드를 보시면, 중복 코드가 <kbd>extends</kbd>를 통해 제거되었음을 알 수 있습니다. ``` // 바지 클래스 class Pants extends Product { int waistSize; // 허리둘레 // 허리둘레 출력 void printWaistSize() { System.out.printf("허리둘레: %d인치\n", waistSize); } } ``` #### 부모 클래스와 자식 클래스 이러한 상속 관계에서, 근간이 되는 클래스를 부모(Parent) 클래스라 부릅니다. 또, 부모 클래스를 통해 확장된 클래스는 자식(Child) 클래스라 합니다. ``` // 부모 클래스 class Parent { ... } // 자식 클래스 - 부모 클래스로부터 파생 class Child extends Parent { ... } ``` ## 문제 주어진 코드는 Animal과 Pet 클래스를 정의하고 있다. 아래의 클래스 다이어그램을 참고하여 상속 통해 중복된 코드를 제거하고, 출력 예와 같은 결과를 얻으시오. ![클라우드스터딩-자바-상속을-통한-중복-제거](https://i.imgur.com/RQ4qkpw.png) ## 출력 예 ``` 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("애완 동물이 장난을 칩니다~"); } }

입력

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