gnu

블로그 이미지
by 군우

TAG CLOUD

  • Total hit
  • Today hit
  • Yesterday hit

인터페이스(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


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

[C#] nameSpace 네임스페이스  (0) 2018.03.19
[C#] new  (0) 2018.03.19
[C#] 구조체  (0) 2018.03.19
[C#] Out 키워드  (0) 2018.03.19
[C#] 제네릭  (0) 2018.03.19
AND

ARTICLE CATEGORY

분류 전체보기 (197)
C (0)
HTML (7)
C# (88)
Python (27)
IT (0)
Android (2)
Java (65)
Study (5)
JavaScript (1)
JSP (2)

RECENT ARTICLE

RECENT COMMENT

CALENDAR

«   2025/04   »
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 30

ARCHIVE

LINK