# 상속을 통한 중복 제거
#### 상속의 이점
서로 다른 두 클래스에 중복 속성을 상속을 통해 제거할 수 있습니다.
![클라우드스터딩-자바-상속을-통한-코드-중복-제거](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원 }
```