Over loading = 과적재
클래스는 상태와 행위를 가질 수 있다.
이때 어떤 클래스가 행위(메서드)를 가지고 있는데 이름이 똑같은 행위(메서드)를 가지고 있다 하더라도 매개변수가 다르다면 같은 이름의 행위(메서드)를 선택적으로 사용하도록 허락해주는 기법이다.
그럼 오버로딩된 메서드를 호출을 할 때 상황에 따라서 유연하게 매개변수를 입력해 줄 수 있다.
왜 오버로딩이 객체지향에서 중요한 문법이냐면?!
사실 저렇게 하지 않고도 메서드를 하나 더 만들면 된다 하지만 왜 오버 로딩이란 것이 탄생하게 됐고 이 오버 로딩의 한계는 무엇일까?
오버 로딩의 한계
자 다음과 같은 프로그램을 만들었다. 위 프로그램의 단점이 무엇일까?
첫 번째로 자유도가 떨어진다. 전사는 궁수만 공격할 수 있고 궁수는 광전사만공격할 수 있고 광전사는 전사만 공격할 수 있다.
그래서 이를 해결하기 위해서 오버 로딩을 사용하면 된다.
메서드명은 같게 하고 매개 변수만 달리해서 지금 위 프로그램 내에 유닛을 다 공격할 수 있도록 만들어 주는 것이다.
자 그럼 위 프로그램의 문제가 오버 로딩으로 손쉽게 해결됐다
그럼 오버 로딩의 한계는 무엇일까?
위 프로그램의 직업은 전사, 궁수, 광전사밖에 없지만 만약에 위 게임이 인기가 많아져서 새로운 직업 유닛이 100개가 생겼다고 생각해보자. 그럼 하나의 함수를 오버 로딩을 100개를 해야 한다. 객체지향과 많이 멀어지는 막일 코딩이 돼 버린다.
이를 해결해 주기 위해서 나온 객체지향 문법이 있다.
다음 포스팅에서...
'JAVA,객체지향' 카테고리의 다른 글
추상클래스 (0) | 2021.11.26 |
---|---|
오버라이딩 (0) | 2021.11.25 |
다형성 (0) | 2021.11.21 |
클래스? 오브젝트? 인스턴스??? (0) | 2021.11.21 |
클래스만들기/생성자/this (0) | 2021.11.20 |