C#/C# Concept

[C#] 인터페이스

군우 2018. 3. 19. 15:48

인터페이스(interface)

 - 사용자 접속을 기술할 수 있는 프로그래밍 단위이다

 - 구현되지 않은 멤버들로 구성된 순수한 설계의 표현이다.


C#에서 클래스는 단일 상속만 가능하기 때문에 다중 상속이 가능한 인터페이스를 지원하고 있다.


인터페이스의 이름은 첫글자 대문자

인터페이스를 partial 로 선언하게되면 서로 다른 소스 파일에서 선언된 같은 이름의 인터페이스는 멤버들을 합집한한 멤버들을 갖게 된다. 

인터페이스 안의 메소드들은 추상메소드와 같이 내용을 구현하지 않는다. 그리고  접근권한은 입력하지않아도 public이다 .


인터페이스는 파생클래스가 지켜야할 내용을문법적으로 규약한 계약서 역할을 한다. 인터페이스에서 계약서의 '무엇'부분을 정의한다면, 이 인터페이스를 실제로 구현하는 클래스에서는  인터페이스의 어떻게 부분을 구현한다.


분할 클래스(Partial Class)


클래스의 구현이 길어질 경우 두 개 이상의 소스 파일로 분할하여 동시에 작업을 수행하거나, 관리의 편의를 위해 클래스를 분할하기도 합니다. 클래스를 분할하려면 partial 키워드를 사용하면 됩니다. 클래스 말고도 앞으로 배울 인터페이스, 구조체에도 partial 키워드를 사용할 수 있습니다. 아래는 분할 클래스의 예제입니다.



인터페이스 이용하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
 
interface IMusician
{
    void Instrument();
}
 
namespace CSStudy_interface
{
    class PianoPlayer : IMusician //인터페이스를 상속
    {
        public void Instrument() // 인터페이스 안의 메소드를 작성
        {
            Console.WriteLine("Play the piano...");
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            //IMusician m1 = new IMusician();
            //인터페이스를 인스턴스화 할 수 없다.
            PianoPlayer m2 = new PianoPlayer();
 
            m2.Instrument();
        }
    }
}
cs