C#

C#문법-18 : 인터페이스

알통몬_ 2019. 6. 12. 16:13
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


인터페이스

클래스와 같이 Method, Property, event, indexer 등을 갖습니다.

차이점으로는 위 언급한 것들을 클래스처럼 구현하지는 않고,

정의만 합니다.

=> 추상 멤버로만 구성되어있는 추상 클래스와 개념적으로 비슷합니다.


클래스가 인터페이스를 implements 할 경우

인터페이스에 정의한 멤버들을 모두 정의해야 합니다.

그리고 또 하나의 차이점은 부모 클래스는 하나만 가질 수 있지만,

부모 인터페이스는 여러 개를 가질 수 있습니다.

자바의 개념과 같죠?


=====================================================

인터페이스 정의


public interface InterfaceEx {

int calculation(int x, int y);

}

이렇게 클래스처럼 정의할 수 있고,

class 대신 interface 예약어를 사용합니다.

정수를 반환하는 메소드를 가지는 인터페이스를 정의해봤습니다.

=====================================================


=====================================================

인터페이스 구현

using System;
using System.Text;


namespace workspace_csharp {

public class Program : InterfaceEx {

public int calculation(int x, int y) {
return x + y;
}

public static void Main(String[] args) {
Program program = new Program();
System.Console.WriteLine(program.calculation(10, 20));
}
}

}

클래스를 상속받는 것과 마찬가지로 

'클래스이름 : 인터페이스이름' 처럼 

선언하면 인터페이스를 구현할 수 있습니다.

인터페이스에서는 추상메소드였지만,

실제 구현할 때는 {} 블록을 가지는 메소드로

구현되어야 합니다. 반환형도 당연히 일치해야 하구요.

=====================================================


=====================================================

인터페이스 사용

인터페이스는 실제로도 자주 사용되는 개념입니다.

일반적으로 event를 정의할 때 많이 사용된다고 생각합니다.

그리고 여러 클래스에서 공통적으로 사용되는 기능들이 있다면

인터페이스에 정의를 하고 정의한 내용들을 구현함으로

통일감을 줄 수도 있습니다.

=====================================================


이상입니다. 감사합니다.

저의 포스팅 내용 중 틀린 부분이 있거나 궁금하신 부분이 있다면

댓글부탁드립니다!

반응형