[C#] 추상 클래스

AsiaticRicecake·2025년 3월 26일

1. 📖 추상 클래스

클래스를 정의할 당시 구체화 시킬 수 없는 기능을 추상적 표현으로 정의하는 겁니다.

 abstract class Item               
 {
     public abstract void Use();    // 클래스에서 구현을 진행하지 않고 선언만 진행
 }

이렇게 설정을 하면 상속받았을 때 Use()는 확실히 사용해야 오류가 생기지 않습니다.

1-1 🔖 추상 클래스를 사용하는 이유?

가장 큰 이유는 부모 클래스의 기능을 구현하지 않고 넘어가는 실수를 줄이기 위해 사용합니다.

해당 추상 클래스를 상속 받은 자식 클래스는 기능을 구체화시키지 않은 경우
인스턴스 생성이 불가능하기 때문에 자식클래스에게 구현을 강제할 수 있습니다.

또 프로젝트 당시에 구현을 구체화하기 어려운 상위클래스를 설계하기 위한 수단으로 사용하기도 합니다.

    public abstract class Animal
    {
        public string Name { get; set; }


        public Animal(string name) 
        {
            Name = name;
        }

        public abstract void Walk();

    }

    public class Dog : Animal 
    { 
        public Dog(string name) : base(name) { }

        public override void Walk()
        {
            Console.WriteLine("강아지가 네 발로 걸어요");
        }
    }

    public class Human : Animal
    {
        public Human(string name) : base(name) { }

        public override void Walk()
        {
            Console.WriteLine("사람이 두 발로 걸어요");
        }


        static void Main(string[] args)
        {
            Animal[] animals =
            {
                new Dog("복돌이"),
                new Human("홍길동")
            };

            foreach (var animal in animals)
            {
                animal.Walk();
            }
        }
    }
}
강아지가 네 발로 걸어요
사람이 두 발로 걸어요

이렇게 추상 클래스를 상속 받았을 때 해당 클래스의 메서드까지 빠짐없이 기입해야 오류가 나지 않습니다.

0개의 댓글