상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
베개는 기침이나 알레르기에 어떤 영향을 미치나요?
베개를 사용하는 사람들의 다양한 의견은 무엇인가요?
10월 가족 해외여행
호치민 자유여행에서 관광비를 줄일 수 있는 팁은?
독일에서의 취업 기회는 어떤가요?
독일의 교통 수단에는 어떤 것이 있나요?
독일에서의 건강한 식생활은 어떻게 이루어지나요?
영국에서 유명한 축제는 무엇인가요?
영국의 음식 문화에서 중요한 식재료는 무엇인가요?
영국에서의 라이브 음악 공연 문화는 어떤가요?
스페인의 영화 산업 현황은 어떤가요?
포르투갈의 기후는 어떤가요?
Previous
Next
수정하기 - C#에서 메서드 오버로딩과 오버라이딩의 차이는?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
C 에서 메서드 오버로딩(Overloading)과 오버라이딩(Overriding)은 모두 메서드의 동작을 변경하거나 확장하는 방법이지만, 그 방식과 목적이 다릅니다. 이 두 개념을 이해하는 것은 객체 지향 프로그래밍에서 매우 중요합니다. 아래에서 각각의 개념을 자세히 설명하겠습니다. 메서드 오버로딩 (Overloading) 메서드 오버로딩은 같은 이름의 메서드를 여러 개 정의하되, 매<a href='https://sangseek.com/sangseeks/개변/ko'>개변</a>수의 수나 타입이 다르게 하는 것입니다. 즉, <a href='https://sangseek.com/sangseeks/동일한/ko'>동일한</a> 메서드 이름을 사용하더라도 서로 다른 시그니처(매개변수의 타입과 개수)를 가지게 됩니다. 오버로딩은 주로 코드의 가독성을 높이고, 다양한 입력에 대해 같은 동작을 수행할 수 있도록 하기 위해 사용됩니다. 예시 ```csharp public class MathOperations { // 두 개의 정수를 더하는 메서드 public int Add(int a, int b) { return a + b; } // 세 개의 정수를 더하는 메서드 public int Add(int a, int b, int c) { return a + b + c; } // 두 개의 실수를 더하는 메서드 public double Add(double a, double b) { return a + b; } } ``` 위의 예시에서 `Add` 메서드는 정수 두 개, 정수 세 개, 그리고 실수 두 개를 더하는 세 가지 버전이 있습니다. 이처럼 메서드 오버로딩을 통해 같은 이름의 메서드를 다양한 방식으로 사용할 수 있습니다. 메서드 오버라이딩 (Overriding) 메서드 오버라이딩은 <a href='https://sangseek.com/sangseeks/상속 관계/ko'>상속 관계</a>에 있는 클래스에서 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것입니다. 오버라이딩을 통해 자식 클래스는 부모 클래스의 기본 동작을 변경하거나 확장할 수 있습니다. 이때, 부모 클래스의 메서드는 `virtual` 키워드를 사용하여 정의되고, 자식 클래스에서는 `override` 키워드를 사용하여 해당 메서드를 재정의합니다. 예시 ```csharp public class Animal { public virtual void Speak() { Console.WriteLine("Animal speaks"); } } public class Dog : Animal { public override void Speak() { Console.WriteLine("Dog barks"); } } public class Cat : Animal { public override void Speak() { Console.WriteLine("Cat meows"); } } ``` 위의 예시에서 `Animal` 클래스는 `Speak`라는 메서드를 가지고 있으며, 이는 `virtual`로 정의되어 있습니다. `Dog`와 `Cat` 클래스는 `Animal` 클래스를 상속받아 각각의 방식으로 `Speak` 메서드를 오버라이딩합니다. 이렇게 하면 `Animal` 타입의 변수로 `Dog` 또는 `Cat` 객체를 참조할 때, 해당 객체의 `Speak` 메서드가 호출됩니다. 주요 차이점 1. 목적 : - 오버로딩 : 같은 이름의 메서드를 여러 개 정의하여 다양한 매개변수 조합을 처리하기 위해 사용됩니다. - 오버라이딩 : 부모 클래스의 메서드 동작을 자식 클래스에서 변경하기 위해 사용됩니다. 2. 정의 위치 : - 오버로딩 : 같은 클래스 내에서 메서드를 정의합니다. - 오버라이딩 : 상속 관계에 있는 클래스 간에 이루어집니다. 3. 키워드 : - 오버로딩 : 특별한 키워드 없이 메서드를 정의합니다. - 오버라이딩 : 부모 클래스의 메서드는 `virtual`, 자식 클래스의 메서드는 `override` 키워드를 사용합니다. 4. 시그니처 : - 오버로딩 : 메서드 이름은 같지만 매개변수의 수나 타입이 다릅니다. - 오버라이딩 : 메서드 이름과 매개변수는 동일하지만, 구현 내용이 다릅니다. 결론 메서드 오버로딩과 오버라이딩은 C 의 객체 지향 프로그래밍에서 중요한 개념으로, 각각의 목적과 사용법이 다릅니다. 오버로딩은 코드의 유연성을 높이고 가독성을 향상시키는 데 도움을 주며, 오버라이딩은 상속을 통해 <a href='https://sangseek.com/sangseeks/다형성/ko'>다형성</a>을 구현하는 데 필수적입니다. 이 두 가지 개념을 잘 이해하고 활용하면 더 나은 객체 지향 프로그래밍을 할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기