인터페이스는 개발자들간의 약속을 정의할때 사용
구현을 강제할 때
다형성을 활용 가능해짐
interface GooglePlay
{
void SetID();
}
class Galaxy: GooglePlay
{
public void SetID()
{
}
}
class Pixel: GooglePlay
{
public void SetID()
{
}
}
class IPhone { }
class Xperia { }
class Motorala { }
Class Program
{
static void Main(string[] args)
{
GooglePlay AndroidPhone = new Galaxy();
}
}
인터페이스와 추상클래스 공통점과 차이점
공통점
직접 객체 ( 인스턴스 ) 생성 불가
파생 클래스 / 구현 클래스에서 규칙을 반드시 구현해야함
다형성을 제공
차이점
| 구분 | 추상 클래스 | 인터페이스 |
| 목적 | 공통 부모님으로서 기본 뼈대 제공 | 기능 / 능력 규약 제공 |
| 상속 / 구현 | 단일 상속만 가능 | 다중 구현 기능 |
| 구성 요소 | 추상 메서드 , 필드 , 프로퍼티, 생성자 | 메서드 / 프로퍼티 시그니처만 가능 |
| 필드 / 상태 | 필드 / 상태를 가질수 있음 | 필드 가질수 없음 |
| 생성자 | 생성자 가질수 있음 | 생성자 없음 |
| 관계 | 동물 - 개, 고양이, 새 | 이동 가능 , 공격 가능 |