반응형
객체지향 프로그래밍 언어의 특징 중 하나인 다형성에서 비롯되는 오버로딩과 오버라이딩은 제대로 알아놓지 않으면 헷갈리는 개념이다.
이 두가지 개념은 기술 면접이나 전공 시험에서도 많이 나오는 개념이니, 한번 정리해서 머리에 넣어두자.
오버로딩 (overloading)
오버로딩은 하나의 클래스에 이름은 같지만 매개변수의 수나 타입이 다른 메소드를 추가적으로 선언하는 것이다.
오버로딩의 특징은 다음과 같다.
- 메소드 이름이 같아야 한다.
- 파라미터 개수가 달라야 한다.
- 파라미터 개수가 같을 경우, 데이터 타입이 달라야 한다.
- 리턴형은 같아도 되고 달라도 된다. (다른 거 다 같고 리턴형만 다르면 오버로딩이 아니다.)
오버라이딩 (overriding)
오버라이딩은 상속관계에 있는 메소드와 동일한 이름, 파라미터를 갖는 메소드를 정의하여 함수를 덮어쓰는 것이다.
오버라이딩의 특징은 다음과 같다.
- 오버라이딩 하고자 하는 메소드가 상위 클래스에 있어야 한다.
- 메소드의 이름, 파라미터 개수, 자료형, 리턴 타입이 모두 동일해야 한다.
반응형
'잡다한 지식 > CS 베이스' 카테고리의 다른 글
[한국은행 전산학 기출][2010] fork를 이용한 프로세스 생성 과정 (1) | 2021.04.23 |
---|---|
[한국은행 전산학 기출][2010] 허프만 트리를 이용한 문자열 압축 (4) | 2021.04.23 |
[프로그래밍언어론] 객체지향 프로그래밍 언어의 특징 (0) | 2021.03.26 |
[Data Structure] Heap (0) | 2021.03.19 |
#define 의 함정... 나만 빠짐 (1) | 2021.03.19 |