본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Interface
객체지향 구조에서 추상 메서드만으로 이루어진 설계용 클래스
  • 정해진 오퍼레이션을 필수적으로 구현토록 함

추상 클래스와의 차이

편집 원본 편집
구분 인터페이스(Interface) 추상 클래스(Abstract Class)
목적
  • 설계도
  • 메서드의 강제 구현
  • 미완성 클래스
  • 공동 기능 사용
추상 메서드 보유 보유
일반 메서드 보유 불가능 보유 가능
다중 상속 가능 불가능
언어 인터페이스를 만드는 법
자바, C# interface 키워드로 선언하고, 클래스는 implements(C# 은 :)로 여러 개를 구현할 수 있다
C++ 별도 문법이 없다. 순수 가상 함수(= 0)만 두고 데이터 멤버를 두지 않은 추상 클래스를 관례상 '인터페이스 클래스' 로 쓴다
파이썬 abc 모듈의 추상 메서드로 흉내 낸다

C++ 코드에서 문법으로 드러나는 것은 추상 클래스(순수 가상 함수), 다중 상속(부모 클래스 나열), 멤버 함수 원형(선언) 같은 것이고, '인터페이스 클래스' 는 언어가 정한 문법 요소가 아니다. 특히 다른 클래스를 상속해 구현과 데이터를 물려받는 클래스는 순수한 인터페이스로 보지 않는다.