인터페이스


간단하게 계약(contract)라고 정의되며

구현 없이 메소드 선언만 포함된 클래스 문법과 비슷한 면이 있다.

<aside> 💡 관례적으로 인터페이스 이름에는 I접두사를 붙인다.

</aside>

인터페이스를 추상메소드만 0개 이상 담고 있는 추상 클래스라 생각해도 무방하다.

인터페이스의 특징

  1. 선언은 있고 정의는 없다
  2. 다중 인터페이스가 가능하다.
  3. 인터페이스의 메소드를 자식 클래스에 구현할 떄는 반드시 public 접근 제한자를 명시해야한다.
  4. 인터페이스에는 프로퍼티도 넣을 수 있다.

그럼 왜 인터페이스를 쓸까?


인터페이스에 속한 메소드는 모두 가상 메소드에 속한다.

이미 가상 메소드기 때문에 virtual,override 예약어를 지정하지 못하게한다. → 굳이 지정할 필요가 없기 때문이다.

상속은 한개 밖에 하지못하지만 인터페이스는 다중 인터페이스가 가능하다.