인터페이스란?
- 구현없이 메서드만 선언된 클래스 문법과 유사하다.
- 실제로 추상메소드만 0개 이상 담고있는 추상 클래스로 봐도 무방하다.
- 하지만 인터페이스를 쓰는 이유는 인터페이스는 다중상속이 가능하기때문이다.
- 인터페이스는 실무에서 아주 많이 사용되는 기능중 하나입니다.
만약 자동차 주행 S/W를 만드는 프로젝트에서, 여러 모터를 제어하는 기능을 만든다고 가정했을때,
해당 모터의 업체에 따라 제공해주는 라이브러리도 달라지게됩니다. 하지만 인터페이스를 이용하여,
하나의 메소드로 여러 라이브러리를 제어하는 것이 가능합니다.
아래 이미지가 가장 제가 말씀드리는것과 유사하네요.
예시
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test_Interface
{
interface IMotorController
{
bool Moving();
bool Stop();
}
public class Motion : IMotorController
{
public bool Moving()
{
// about Move
}
public bool Stop()
{
// about Stop
}
}
class Car
{
public virtual bool isCar() { }
}
class Motor : Car
{
Motion motion = new Motion();
public override bool isCar() { /* return true or false ; */ }
if(isCar() == true)
{
motion.Moving();
motion.Stop();
}
}
}
인터페이스의 특징
- Method만 포함할 수 있다.
- 비어 있는 인터페이스 정의가 가능하다.
- 자식 클래스에서 구현할 때, 반드시 public 접근 제한자를 명시해야한다.
- 인터페이스명을 직접 붙이는 경우에는 반드시 인터페이스로 형변환해야 호출이 가능하다.
- C#에서는 property가 메소드로 구현되기에, 인터페이스에 포함이 가능하다.
'🔥 Programming > C#' 카테고리의 다른 글
[C#] 압축파일 압축 풀지않고 이미지 가져오기 (0) | 2023.03.02 |
---|---|
[C#] List에서 근사값 찾기 (0) | 2023.03.01 |