다형성(polymorphism)과 상속(inheritance)은 C#에서 객체 지향 프로그래밍을 효과적으로 구현하는 데 중요한 개념입니다. 다형성은 여러 다른 형태를 가질 수 있는 능력을 의미하며, 상속은 기존 클래스로부터 새로운 클래스를 만드는 기능을 제공합니다.
상속
상속은 기존 클래스의 특성을 새로운 클래스에서 재사용할 수 있게 해줍니다. 이를 통해 코드의 재사용성과 유지보수성이 높아지며, 객체 지향 프로그래밍의 주요 장점 중 하나입니다.
public class Animal
{
public void Eat()
{
Console.WriteLine("The animal is eating.");
}
}
public class Dog : Animal
{
public void Bark()
{
Console.WriteLine("The dog is barking.");
}
}
위의 예제에서 Animal
클래스는 Eat
메서드를 가지고 있고, Dog
클래스는 Animal
클래스를 상속받아 Eat
메서드를 사용할 수 있으면서 추가로 Bark
메서드를 가지고 있습니다.
다형성
다형성은 같은 이름을 가진 메서드나 속성이 서로 다른 기능을 하는 능력을 말합니다. 이를 통해 하나의 코드로 여러 종류의 객체를 처리할 수 있어 유연하고 확장 가능한 코드를 작성할 수 있습니다.
public class Animal
{
public virtual void MakeSound()
{
Console.WriteLine("The animal makes a sound.");
}
}
public class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("The dog barks.");
}
}
public class Cat : Animal
{
public override void MakeSound()
{
Console.WriteLine("The cat meows.");
}
}
위의 예제에서 Animal
클래스의 MakeSound
메서드를 virtual
로 선언하고, Dog
와 Cat
클래스에서 override
키워드를 사용하여 재정의되었습니다. 이로써 다형성을 통해 Animal
타입의 변수로 Dog
나 Cat
객체를 다형적으로 다룰 수 있습니다.
결론
다형성과 상속은 객체 지향 프로그래밍에서 중요한 개념으로, 코드의 재사용성과 유연성을 높여줍니다. 상속을 통해 클래스 간의 계층 구조를 형성하고, 다형성을 통해 유연하고 확장 가능한 코드를 작성할 수 있습니다.
더 많은 정보는 Microsoft 공식 문서를 참고하세요.