본문 바로가기
개발관련

오버로딩(Overloading) / 오버라이딩(Overriding)

by MinChan-Youn 2021. 11. 18.

이번에는 java를 조금이나마 접하였다면 가장 기본적?으로 접하는 Overloading, Overriding에 대해서 알아보겠습니다.

용어가 비슷해서 이게 무슨뜻인가~ 헷갈릴 수 있지만! 한번 정확히 내용을 알고 접하면 문제가 없으니 천천히 따라오시면 되겠습니다.

 

 

* 오버로딩(Overloading)

오버로딩은 한 클래스 내에서 같은 이름의 메소드를 여러개 정의하는 것을 의미

plus()라는 메소드가 있다면 plus(int a), plus(String str)등 메소드 이름은 같지만 호출되는 케이스에 따라 매개변수가 다른 메소드를 만드는 것을 의미합니다.

 

오버로딩의 조건

1. 오버로딩한 메소드들은 같은 클래스 내에 존재해야하며, 같은 이름을 가져야 함

2. 오버로딩한 메소드들은 형(type)이 서로 다르거나 매개변수의 개수가 달라져야 함

 

 

* 오버라이딩(Overriding)

오버라이딩은 상속 관계에 있는 두 클래스 중, 하위 클래스에서 상위 클래스의 메소드를 재정의하는 것을 의미

 

저의 블로그는 Android의 기술을 주로 다루다보니 가장 쉬운 예제로는 onCreate를 볼 수 있습니다.

Acitivity를 구성하다보면 가장 쉽게 볼 수 있는 onCreate()요부분! 메소드를 오버라이딩해서 재정의하고 있죠?

그리고 상위클래스(부모)에서 본래 수행하던 기능을 가져올려면 super.onCreate()를 통해서 본래 기능을 수행 할 수 있도록 정의하고 그 다음 아래에 쭉쭉~ 해당 Activity에서 실행된 명령들을 작성하는것을 생각하면 아주 쉽습니다!

 

오버라이딩의 조건

1. 상속 관계에 있어야 한다는점 Overriding하는 하위 클래스에서 재정의

2. 오버로딩한 메소드들은 형(type)이 서로 다르거나 매개변수의 개수가 달라지면 안되고 똑같아야함

 

 

 

 

 

다음과 같이 오버로딩과 오버라이딩에 대해서 알아보았습니다.

저도 처음에는 서로 비슷한 이름이기도하기 때문에 오버라이딩이 오버로딩인지 헷갈릴때가 있는데요.. 그래도 이렇게 글을 정리하면서 용어에 대해서 한번 더 생각하게 되고 작성을 하다보니 공부도 되고 좋은것 같습니다.

이글을 누가 볼지는 모르겠지만..ㅎ(나중에는 유명해지는 블로그가 되어있길) 보시는 분께서는 이해가 한번에 쏙쏙 되셨으면 좋겠네요!

 

 

 

 

 

 

*용어정리

1. 메소드(method): 어떠한 특정 작업을 수행하기 위해 명령문의 집합