본문 바로가기
프로그래밍/c#

c#_45 인터페이스 interface

by 지나팩 2021. 11. 1.

이번 포스팅에선 인터페이스에 대해서 알아보도록 하겠습니다. 인터페이스는 abstract 추상 클래스와 비슷하지만 추상화 정도가 더욱 깊습니다. 이 말인 즉슨 추상 멤버만 가지고 있는 추상 클래스라고 볼 수도 있습니다. 더불어 직접 구현하지않고 정의만 할 수 있습니다.

위 예제에서 보듯 인터페이스는 상속용으로써 상속받은 클래스 내에서 메소드를 반드시 구현해야 합니다. 인터페이스의 멤버 메소드는 public이나 private같은 접근 제한자를 쓸 수 없습니다. 이는 기본적으로 인퍼테이스의 멤버 메소드는 가상(virtual) 메소드이기 때문입니다. 상속받은 클래스 내에서 메소드를 구현시 public을 반드시 붙혀주어야 하며 가상 메소드이지만 따로 override 키워드는 붙혀줄 필요는 없습니다.

 

한 가지 주의해야 할 점은 인터페이스의 네이밍 시 이름 제일앞에 I라고 명시적으로 붙혀주어야 한다는 것입니다. 명시적으로 I를 붙임으로써 인터페이스라는 걸 알려주는 것이죠.

 

당연하게도 new를 통해서 객체를 생성할 순 없습니다. 인터페이스 배열을 만들 순 있습니다.

 

 

 

클래스와 달리 인터페이스는 다중 상속이 가능합니다.

인터페이스의 다중 상속을 활용해 다양한 기능들을 덧붙일 수 있습니다. 

'프로그래밍 > c#' 카테고리의 다른 글

c#_as 연산자  (0) 2022.01.12
c#_is 연산자  (0) 2022.01.10
c#_44 추상화 클래스, 메소드 abstract  (0) 2021.09.29
c#_43 제너릭 Generics 타입 <T>  (0) 2021.09.19
c#_42 클래스 Virtual과 Override 가상 메소드(함수) 1  (0) 2021.09.18

댓글