JAVA,객체지향

오버로딩과 오버로딩의 한계

25G 2021. 11. 25. 16:39

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