오늘은 자바의 overriding, overloading 에 대해서 설명하려고 한다.
객체지향언어인 자바에서은 매우 중요한 개념이기도 하니 확실히 이해하면 좋을 것 같다.
1. overriding
오버라이딩은 말그대로 덮어쓰기를 뜻한다.
다른 말로 표현하자면 메소드를 다시 정의하는 것이라고 말할 수 있다.
class Member{
void printCN() { System.out.println("Member"); }
}
class Member_sub extends Member {
void printCN() { System.out.println("Member_sub"); }
}
위와 같이 같은 이름의 메소드를 다시 정의하는걸 overriding 이라고 한다.
재정의를 했을 때는 @Override를 통해서 재정의를 했다는 걸 알려주기도 한다.
이를 어노테이션이라고 하는데, 이는 나중에 다시 한번 정리해봐야겠다.
2. overloading
오버로딩은 같은 이름의 메소드를 여러개로 하되 각각의 매개변수의 유형과 개수가 다르게 하는 것이다.
class Member_sub extends Member {
void printCN() { System.out.println("Member_sub"); }
void printCN(String cName) { System.out.println(cName); }
void printCN(int a, int b) { System.out.println(a + b}; }
}
위와 같이 같은 이름의 메소드를 여러개 만들고 여러 유형에 호출에 대비할 수 있도록 한 것이 overloading 이다.
자바의 중요한 개념 중 하나인 다형성을 지원하기 위해서 만들어진 기능들이므로 객체지향에 있어서 매우 중요한 개념이라고 생각한다.
잊지 말고 잘 기억할 수 있도록 하자.
'언어 > Java' 카테고리의 다른 글
[Java] 자바 프로그램의 구조 (0) | 2022.03.20 |
---|---|
[Java] - 자바란? (0) | 2022.03.20 |
[Java] 접근제어자(제한자) (0) | 2022.03.20 |
[Java] Optional (0) | 2022.03.20 |
[Java] 클래스, 객체, 인스턴스 (0) | 2022.03.20 |