# 메소드 오버라이딩
<div class="embed-responsive embed-responsive-16by9">
<iframe src="https://www.youtube.com/embed/YJBxsuUiVXg?start=420" frameborder="0" allowfullscreen></iframe>
</div>
메소드 오버라이딩(overriding)이란, 부모의 메소드를 자식 클래스에서 재정의하는 것입니다.
가령 부모 클래스 Wizard의 파이어볼은 데미지가 10일 때, 이를 물려받은 자식 클래스 GreatWizard에서는 30 데미지를 주고 싶다면 어떻게 해야 할까요?
```
class Wizard {
public void fireball() {
System.out.println("10 데미지를 줍니다");
}
}
```
이때 사용하는 개념이 메소드 오버라이딩입니다.
```
class GreatWizard extends Wizard {
// 메소드 오버라이딩(재정의)
public void fireball() {
System.out.println("30 데미지를 줍니다");
}
}
```
메소드를 재정의함으로써, GreatWizard 객체의 파이어볼 데미지가 상승하였습니다.
```
Wizard w = new Wizard();
w.fireball(); // 10 데미지를 줍니다
GreatWizard gw = new GreatWizard();
gw.fireball(); // 30 데미지를 줍니다
```
## 문제
주어진 코드로 정사각형, 삼각형, 원의 넓이를 구하려 한다. 이를 위해 아래와 같은 클래스 구조를 구현한 상황이다.

출력 예와 같은 결과를 얻도록, 메소드 오버라이딩을 통한 각 도형의 넓이를 구하시오.
## 출력 예
```
정사각형의 넓이 -> 25.00
삼각형의 넓이 -> 6.00
원의 넓이 -> 50.27
```