반응형
※ 오버로딩과 오버라이딩의 차이
오버로딩과 오버라이딩의 용어는 비슷하나 차이는 명백합니다.
- 오버로딩은 기존에 메소드의 인자를 이용하여 하나의 함수에 여러가지 기능을 만드는 것.
기존에 int a(int a) 라는 함수와 char a (char a, char b) 라는 함수가 존재한다고 가정한다.
main()에서 호출시에는 a(10); 이라고 호출하면 전자가 호출이 되고 a('abc', 'def'); 라고
호출하면 후자가 호출이 된다.
주로 생성자 메소드를 정의할 때 많이 사용하게 된다. 쉽게 말하자면 함수의 이름은 같으나,
인자(파라메터)로 구분을 하게 되는것이다. - 오버라이딩은 상위클래스에 있는 메소드를 다시 만드는 행위(재정의) 를 의미한다.
상속의 개념에서 매우 중요한 부분이며, 부모 클래스의 메소드를 자식 클래스에서 완전히 새로
만드는 것을 의미한다.
비교적 특징
오버로딩
- 메소드 이름이 같아야 한다.
- 리턴형이 같아도 되고, 달라도 된다.
- 파라메터 개수가 같을 경우, 자료형이 달라야 한다
오버라이딩
- 오버라이드 하고자 하는 메소드의 수가 상위 클래스의 존재해야 한다.
- 메소드의 이름이 같아야 한다.
- 메소드의 파라메터 갯수, 자료형이 같아야 한다.
- 상위 메소드와 동일하거나 더 구체적인 Exception 을 발생시켜야 한다.
- 상위 메소드와 동일하거나 접근 범위가 더 넓은 접근 제한자를 사용해야 한다.
반응형
'Development > Software Engineering' 카테고리의 다른 글
[OOP] [펌] 객체 - 지향 프로그래밍이란 무엇인가? (0) | 2014.02.27 |
---|---|
디자인 패턴 블로그 링크 모음 (0) | 2014.02.27 |
디자인 패턴 (0) | 2014.02.27 |
[OOP] 추상클래스 (abstract class) (0) | 2013.12.09 |
[OOP] - 객체 지향 프로그래밍 (위키미디어) (0) | 2013.11.12 |
댓글