• 티스토리 홈
  • 프로필사진
    유니얼
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
유니얼
  • 프로필사진
    유니얼
    • 분류 전체보기 (295)
      • Unity (17)
        • 게임 개발 (5)
      • Unreal (24)
        • 게임 개발 (20)
      • DirectX (36)
      • 코딩테스트 (91)
        • 프로그래머스 (25)
        • 백준 (66)
      • Google Workspace (1)
      • Programing (102)
        • C# (68)
        • C++ (24)
        • JavaScript (10)
      • 게임 서버 프로그래밍 (17)
      • Web (6)
        • 슈퍼코딩 (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
    등록된 댓글이 없습니다.
  • 최근 공지
    등록된 공지가 없습니다.
# Home
# 공지사항
#
# 태그
# 검색결과
# 방명록
  • C# 프로그래밍의 기초: 추상 클래스와 인터페이스
    2024년 08월 24일
    • 유니얼
    • 작성자
    • 2024.08.24.:58
    728x90

    C# 프로그래밍에서 추상 클래스와 인터페이스는 객체 지향 프로그래밍의 다형성과 코드 재사용을 구현하는 핵심 구조입니다. 이 두 구조는 서로 다른 방식으로 클래스 간의 계약을 정의하고, 구현을 강제하여 설계의 일관성을 유지하도록 돕습니다. 이 블로그 포스트에서는 추상 클래스와 인터페이스의 개념을 설명하고, C#에서 이를 어떻게 활용할 수 있는지를 탐구합니다.

    추상 클래스(Abstract Class)

    추상 클래스는 인스턴스화할 수 없는 클래스입니다. 이는 하나 이상의 추상 메서드를 포함하거나, 구현된 메서드를 가질 수 있으며, 다른 클래스가 상속받아 사용하도록 설계되었습니다.

     

    주요 특징:

    • 기본 구현 제공: 추상 클래스는 일부 메서드나 속성에 대한 기본 구현을 제공할 수 있습니다.
    • 강제 구현: 하나 이상의 추상 메서드를 포함할 수 있으며, 이러한 메서드는 상속받는 서브 클래스에서 반드시 구현해야 합니다.
    • 상속 제한: 하나의 추상 클래스만 상속받을 수 있습니다.

    예제코드:

    public abstract class Animal
    {
        public abstract void MakeSound();
        public void Sleep()
        {
            Console.WriteLine("The animal is sleeping.");
        }
    }

    인터페이스(Interface)

    인터페이스는 메서드, 속성, 이벤트의 시그니처만을 정의하는 계약입니다. 인터페이스 자체는 어떠한 구현도 포함하지 않으며, 이를 구현하는 클래스는 인터페이스의 모든 메서드를 구현해야 합니다.

     

    주요 특징:

    • 구현 강제: 인터페이스에 선언된 모든 메서드는 구현 클래스에서 반드시 구현해야 합니다.
    • 다중 구현: 클래스는 여러 인터페이스를 동시에 구현할 수 있습니다, 이는 C#에서 다중 상속을 허용하지 않는 한계를 극복합니다.
    • 타입 유연성: 인터페이스는 다양한 클래스가 동일한 인터페이스를 구현함으로써 일관된 방식으로 처리될 수 있도록 합니다.

    예제코드:

    public interface IAnimalActions
    {
        void Eat();
        void Move();
    }

    추상 클래스와 인터페이스의 차이점

    • 구현 유무: 추상 클래스는 기본 구현을 포함할 수 있지만, 인터페이스는 시그니처만을 정의하고 구현을 포함할 수 없습니다.
    • 상속 방식: 클래스는 하나의 추상 클래스만 상속받을 수 있으나, 여러 인터페이스를 구현할 수 있습니다.
    • 용도: 추상 클래스는 관련된 클래스 간의 공통 기능을 정의하는 데 사용되며, 인터페이스는 서로 관련 없는 클래스에 특정 기능을 추가하는 데 사용됩니다.

    전체예제 코드

    using System;
    
    namespace CSharp_ProgramingStudy.Chapter5_OOP
    {
        public abstract class Animal
        {
            public abstract void MakeSound();
            public void Sleep()
            {
                Console.WriteLine("The animal is sleeping.");
            }
        }
    
        public interface IAnimalActions
        {
            void Eat();
            void Move();
        }
    
        public class Dog : Animal, IAnimalActions
        {
            public override void MakeSound()
            {
                Console.WriteLine("The dog barks: Woof woof!");
            }
    
            public void Eat()
            {
                Console.WriteLine("The dog is eating.");
            }
    
            public void Move()
            {
                Console.WriteLine("The dog is running.");
            }
        }
    
        public class Class11
        {
            public void Run()
            {
                Dog myDog = new Dog();
                myDog.MakeSound();
                myDog.Sleep();
                myDog.Eat();
                myDog.Move();
            }
        }
    }
    

    결론

    추상 클래스와 인터페이스는 C# 프로그래밍에서 객체 지향 설계의 기본을 이루며, 다형성을 활용하는 강력한 수단입니다. 올바르게 사용될 때, 이들은 코드의 유지보수성, 확장성 및 재사용성을 크게 향상시킬 수 있습니다. 각 프로젝트의 요구사항에 맞춰 적절한 구조를 선택하는 것이 중요합니다.

    반응형
    다음글
    다음 글이 없습니다.
    이전글
    이전 글이 없습니다.
    댓글
조회된 결과가 없습니다.
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
목차
표시할 목차가 없습니다.
    • 안녕하세요
    • 감사해요
    • 잘있어요

    티스토리툴바