1.상속하면 개발하기 편하다 수정도 부모만 수정하면 되서 편하다
2.부모클래스를 자식에서 재정의 하는 것 == 오버라이딩
3.datatype을 묶어주는 up casting
그리고 오버 라이딩과 비슷한 오늘 배울 오버 로딩
public int plus(int num1, int num2) {
return num1+num2;
}
public int plus(int num1, int num2, int num3) {
return num1+num2+num3;
}
public int plus(double num1, double num2) {
return (int)(num1+num2);
}
오버로딩? 좋다! 하지만 위와 같이 같은 함수들을 2개, 3개... 단위로 만들고 또 type마다 method를 계속 만들면 사용자는 그때마다 바꿔줘야하기 때문에 불편해. 그래서 나온 것이 다형성!! 이것은 up-casting과 관련이 있다.
우선 도형이라는 추상class를 만든다. 이 추상 class 안에는 getArea라는 도형의 면적을 구하는 추상 method가 들어있다.
그리고 각각의 도형에는 각각의 도형에 맞는 각자의 면적을 구하는 getArea method가 정의되어있다.
이거 대신
아래 한 줄이면 된다.