상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - C#에서 다형성이란 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
C 에서 다형성(Polymorphism)은 객체 지향 프로그래밍의 중요한 개념 중 하나로, 동일한 인터페이스나 메서드 이름을 사용하여 서로 다른 데이터 타입의 객체를 처리할 수 있는 능력을 의미합니다. 다형성은 주로 두 가지 형태로 나뉘어지며, 이는 컴파일 타임 다형성(정적 다형성)과 런타임 다형성(동적 다형성)입니다. 1. 컴파일 타임 다형성 (정적 다형성) 컴파일 타임 다형성은 메서드 오버로딩(Method Overloading)과 연관되어 있습니다. 같은 이름의 메서드를 매개변수의 타입이나 개수에 따라 여러 개 정의할 수 있습니다. 컴파일러는 메서드를 호출할 때 인자의 타입과 개수에 따라 적절한 메서드를 선택합니다. 예를 들어: ```csharp public class MathOperations { public int Add(int a, int b) { return a + b; } public double Add(double a, double b) { return a + b; } public int Add(int a, int b, int c) { return a + b + c; } } ``` 위의 예제에서 `Add` 메서드는 정수형 두 개, 실수형 두 개, 정수형 세 개를 인자로 받을 수 있으며, 각각의 경우에 맞는 메서드가 호출됩니다. 2. 런타임 다형성 (동적 다형성) 런타임 다형성은 주로 메서드 <a href='https://sangseek.com/sangseeks/오버라이딩/ko'>오버라이딩</a>(Method Overriding)과 관련이 있습니다. 이는 상속을 통해 부모 클래스의 메서드를 자식 클래스에서 재정의할 수 있는 기능을 제공합니다. 런타임에 어떤 메서드가 호출될지는 객체의 실제 타입에 따라 결정됩니다. 예를 들어: ```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`라는 가상 메서드를 가지고 있으며, `Dog`와 `Cat` 클래스는 이를 각각 재정의합니다. 다음과 같이 사용할 수 있습니다: ```csharp Animal myDog = new Dog(); Animal myCat = new Cat(); myDog.Speak(); // 출력: Dog barks myCat.Speak(); // 출력: Cat meows ``` 이 경우, `myDog`와 `myCat`의 실제 타입에 따라 적절한 `Speak` 메서드가 호출됩니다. 이는 런타임에 결정되므로 동적 다형성이라고 합니다. <a href='https://sangseek.com/sangseeks/다형성의 장점/ko'>다형성의 장점</a> 1. 유연성 : 다형성을 통해 코드의 유연성을 높일 수 있습니다. 새로운 클래스가 추가되더라도 기존 코드를 수정하지 않고도 새로운 기능을 쉽게 추가할 수 있습니다. 2. 코드 재사용성 : 공통된 인터페이스를 통해 다양한 객체를 처리할 수 있으므로 코드의 재사용성이 높아집니다. 3. 유지보수 용이성 : 다형성을 활용하면 코드의 구조가 명확해지고, 유지보수가 용이해집니다. 새로운 기능을 추가할 때 기존 코드를 변경할 필요가 없기 때문에 버그 발생 가능성이 줄어듭니다. 결론 C 에서 다형성은 객체 지향 프로그래밍의 핵심 개념으로, 코드의 유연성과 재사용성을 높이는 데 중요한 역할을 합니다. 컴파일 타임 다형성과 런타임 다형성을 통해 다양한 상황에서 객체를 효과적으로 처리할 수 있으며, 이는 소프트웨어 개발의 품질과 효율성을 향상시키는 데 기여합니다. 다형성을 잘 활용하면 복잡한 시스템에서도 간결하고 이해하기 쉬운 코드를 작성할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기