상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - C#에서 상속은 어떻게 구현하나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
C 에서 상속은 객체 지향 프로그래밍의 중요한 개념 중 하나로, 기존 클래스(부모 클래스 또는 기반 클래스)의 속성과 메서드를 새로운 클래스(<a href='https://sangseek.com/sangseeks/자식 클래스/ko'>자식 클래스</a> 또는 파생 클래스)에서 재사용하고 확장할 수 있게 해줍니다. 상속을 통해 코드의 재사용성을 높이고, 유지보수를 용이하게 하며, 계층적인 구조를 통해 더 나은 설계를 할 수 있습니다. 기본적인 상속 구현 C 에서 상속을 구현하기 위해서는 `:` 기호를 사용하여 자식 클래스가 부모 클래스를 상속받도록 선언합니다. 다음은 기본적인 상속의 예입니다. ```csharp // 부모 클래스 public class Animal { public void Eat() { Console.WriteLine("Eating..."); } } // 자식 클래스 public class Dog : Animal { public void Bark() { Console.WriteLine("Barking..."); } } ``` 위의 예제에서 `Animal` 클래스는 기본적인 동물의 속성을 정의하고, `Dog` 클래스는 `Animal` 클래스를 상속받아 `Eat` 메서드를 사용할 수 있습니다. `Dog` 클래스는 추가적으로 `Bark` 메서드를 정의하고 있습니다. 생성자와 상속 부모 클래스의 생성자는 자식 클래스에서 호출할 수 있습니다. 자식 클래스의 생성자에서 `base` 키워드를 사용하여 부모 클래스의 생성자를 호출할 수 있습니다. ```csharp public class Animal { public Animal() { Console.WriteLine("Animal created"); } } public class Dog : Animal { public Dog() : base() // 부모 클래스의 생성자 호출 { Console.WriteLine("Dog created"); } } ``` 위의 코드에서 `Dog` 클래스의 생성자는 `Animal` 클래스의 생성자를 호출하여 "Animal created" 메시지를 출력한 후 "Dog created" 메시지를 출력합니다. 메서드 <a href='https://sangseek.com/sangseeks/오버라이딩/ko'>오버라이딩</a> C 에서는 부모 클래스의 메서드를 자식 클래스에서 재정의할 수 있습니다. 이를 위해 부모 클래스의 메서드에 `virtual` 키워드를 사용하고, 자식 클래스에서는 `override` 키워드를 사용하여 메서드를 재정의합니다. ```csharp public class Animal { public virtual void Speak() { Console.WriteLine("Animal speaks"); } } public class Dog : Animal { public override void Speak() { Console.WriteLine("Woof!"); } } ``` 위의 예제에서 `Animal` 클래스의 `Speak` 메서드는 가상 메서드로 정의되어 있으며, `Dog` 클래스에서 이를 재정의하여 개의 소리를 출력하도록 변경했습니다. <a href='https://sangseek.com/sangseeks/추상 클래스/ko'>추상 클래스</a>와 인터페이스 C 에서는 추상 클래스와 인터페이스를 통해 상속을 더욱 유연하게 사용할 수 있습니다. 추상 클래스는 인스턴스를 생성할 수 없으며, 자식 클래스에서 반드시 구현해야 하는 <a href='https://sangseek.com/sangseeks/추상 메서드/ko'>추상 메서드</a>를 포함할 수 있습니다. ```csharp public abstract class Animal { public abstract void Speak(); // 추상 메서드 } public class Dog : Animal { public override void Speak() { Console.WriteLine("Woof!"); } } ``` 인터페이스는 클래스가 구현해야 하는 메서드의 집합을 정의합니다. 클래스는 여러 인터페이스를 구현할 수 있습니다. ```csharp public interface IAnimal { void Speak(); } public class Cat : IAnimal { public void Speak() { Console.WriteLine("Meow!"); } } ``` <a href='https://sangseek.com/sangseeks/다중 상속/ko'>다중 상속</a> C 은 클래스에 대한 다중 상속을 지원하지 않지만, 인터페이스를 통해 다중 상속을 구현할 수 있습니다. 하나의 클래스가 여러 개의 인터페이스를 구현할 수 있으므로, 다양한 기능을 조합할 수 있습니다. ```csharp public interface IFlyable { void Fly(); } public interface ISwimmable { void Swim(); } public class Duck : IFlyable, ISwimmable { public void Fly() { Console.WriteLine("Duck is flying"); } public void Swim() { Console.WriteLine("Duck is swimming"); } } ``` 결론 C 에서 상속은 코드의 재사용성과 유지보수성을 높이는 중요한 기능입니다. 기본적인 상속, 생성자 호출, 메서드 오버라이딩, 추상 클래스 및 인터페이스의 개념을 이해하고 활용함으로써, 더 나은 객체 지향 프로그래밍을 할 수 있습니다. 상속을 적절히 사용하면 코드의 구조를 명확하게 하고, 프로그램의 확장성을 높일 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기