[C#] 인터페이스(Interface)란?

2022. 6. 16. 13:36·언어/C#
728x90

추상클래스를 이용하다 보면 2개 이상의 클래스를 상속받고 싶을 때가 있다.

 

class Program
{
    public abstract class Sky
    {
        public abstract void Fly();
    }

    public abstract class Water
    {
        public abstract void Swim();
    }

    public class Monster : Sky, Water // 에러
    {
        public override void Fly()
        {
            Console.WriteLine("날기");
        }
        public override void Swim() // 에러
        {
            Console.WriteLine("수영중");
        }

    }

 

하늘에서는 날고 물에서는 수영하는 몬스터를 만들고 싶지만, 추상 클래스로는 2개 이상의 클래스를 상속받는 게 불가능하다.

이때 우리가 사용할 수 있는 게 바로 Interface다.

 

class Program
{
    interface ISky { void Fly(); }

    interface IWater { void Swim(); }

    public class Monster : ISky, IWater
    {
        public void Fly()
        {
            Console.WriteLine("날기");
        }
        public void Swim()
        {
            Console.WriteLine("수영중");
        }

    }

 

보통 인터페이스를 생성할 때 이름 앞에 대문자 I를 넣어준다. 인터페이스를 사용하면 2개 이상의 인터페이스를 상속받을 수 있고, 인터페이스에 있는 모든 내용을 반드시 구현해주어야 한다.

728x90

'언어 > C#' 카테고리의 다른 글

[C#] 구조체(struct)란?  (0) 2022.08.29
[C#] 델리게이트 체인(delegate chain) 단순한 예제  (0) 2022.06.17
[C#] Span이란?  (0) 2022.06.07
[C#] ArraySegment를 이용하여 배열 가져오기  (0) 2022.06.07
[C#] 바이트 배열을 int로, int를 바이트 배열로  (0) 2022.06.04
'언어/C#' 카테고리의 다른 글
  • [C#] 구조체(struct)란?
  • [C#] 델리게이트 체인(delegate chain) 단순한 예제
  • [C#] Span이란?
  • [C#] ArraySegment를 이용하여 배열 가져오기
돌멩이수프
돌멩이수프
Information technology
  • 돌멩이수프
    WHAT DOES "IT" STAND FOR?
    돌멩이수프
  • 전체
    오늘
    어제
    • 분류 전체보기 (239)
      • 언어 (73)
        • html (3)
        • css (1)
        • java (6)
        • C (26)
        • C++ (2)
        • C# (29)
      • 공부 (7)
        • Unity (43)
        • 게임 서버 (26)
        • 네트워크 (5)
        • 데이터베이스 (7)
        • EFCore (19)
        • 기타 (14)
        • Git (5)
        • 운영체제 (1)
        • 소프트웨어공학 (21)
      • 2024-여름 (12)
      • 자기 관리 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    HTML
    EntityFramework
    네트워크
    coding
    게임서버
    tcp
    코딩
    java
    unity
    자바
    디자인패턴
    C
    C#
    유니티
    Entityfamework
    EFCore
    Python
    C언어
    백준
    라즈베리파이
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
돌멩이수프
[C#] 인터페이스(Interface)란?
상단으로

티스토리툴바