간단하게 계약(contract)라고 정의되며
구현 없이 메소드 선언만 포함된 클래스 문법과 비슷한 면이 있다.
<aside> 💡 관례적으로 인터페이스 이름에는 I접두사를 붙인다.
</aside>
인터페이스를 추상메소드만 0개 이상 담고 있는 추상 클래스라 생각해도 무방하다.
인터페이스에 속한 메소드는 모두 가상 메소드에 속한다.
이미 가상 메소드기 때문에 virtual,override 예약어를 지정하지 못하게한다. → 굳이 지정할 필요가 없기 때문이다.
상속은 한개 밖에 하지못하지만 인터페이스는 다중 인터페이스가 가능하다.