인터페이스

조성원·2025년 5월 1일
post-thumbnail

-interface 가이드-
https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/interface

  • 클래스는 단일 상속만 가능하지만 인터페이스는 다중 구현 가능

  • 구현 클래스는 인터페이스의 모든 멤버를 반드시 구현해야 함

  • 하나의 클래스에서 여러 인터페이스를 구현할 수 있으므로 여러 기능을 조합 가능

  • I로 시작해야 함 ex)public interface IPayment



📗단일 구현

  • IMoveable은 실행만 담당하고 자식 클래스에서 구체적인 요소를 결정함


📗단일 구현 2

  1. new item 인스턴스에서 Name을 초기화 <= 객체 이니셜라이저

  2. Player.UseItem 메서드 실행(item = 사용되서 줄어드는 포션)

  3. item.Use(); 메서드 실행 -> IUsable에게 상속받은 콘솔 출력



📗다중 구현



📗인터페이스와 상속의 차이


🍀인터페이스:

  • 다중 구현
  • 인터페이스는 메서드만 지정, 자식 클래스에서 구현해야 함
  • 자식 클래스에서 구조를 자유롭게 바꿀 수 있음

🍀상속:

  • 단일 상속
  • 부모 클래스에서 멤버를 상속해줌
  • 부모 클래스에 따라 자식 클래스도 바뀜

🍀차이점 정리



📗인터페이스와 추상의 차이


🍀인터페이스:

  • 다중 구현

  • 메서드 구현부가 없고 반드시 자식 클래스에서 구현해야 함

  • 하나의 클래스에서 여러 인터페이스를 상속하여 다양한 기능을 선택적으로 사용할 수 있게 하거나

  • 같은 기능을 가진 여러 클래스를 통합하여 공통된 기능을 구현할 수 있게 하는 데 사용


🍀추상 클래스:

  • 단일 상속

  • 선택적으로 메서드 구현 가능

  • 공통된 로직은 미리 구현하고 자식 클래스마다 다른 동작을 구현할 수 있음 = 공통된 1개의 기능과 다양한 기능을 함께 써야 하는 경우

profile
direction *= -1;

0개의 댓글