인터페이스의 선언위치 선언한 인터페이스를 클래스에 적용을 하이 위해서는 클래스 선언 보다 먼저 되어 있어야 합니다.

include "interface.php";
include "class.php";

정상적으로 동작을 합니다. 반면에 인터페이스보다 먼저 class를 인클루드 하여 사용을 하면 인터페이스 오류가 발생을 합니다.

include "class.php";
include "interface.php";

인터페이스

의사소통의 방법을 정하는것

객체들은 서로 의사소통을 필요할때 인터페이스를 사용합니다. 인터페이스는 사전에 미리 정의를 합니다.

소프트웨어에서의 인터페이스는 함수들의 집합을 의미합니다.

인터페이스가 잘 정의가 되면, 기능을 분리할 수 있습니다. 분리를 통하여 동작의 재사용성이 증가 됩니다.

서비스 명세

인터페이스는 하드웨어 에서는 흔히 사용하는 기법입니다.

소프트웨어에서는 함수들의 선언 집합.

상속불가

인터페이스는 상속이 관계를 설정할 수 없습니다.

함수의 선언만 정의 합니다. 함수에 대한 구현 부분은 존재하지 않습니다. 외부에서 접근이 가능 하도록 public 으로 설정합니다.

객체생성 불가 인터페이스 만으로는 객체를 생성할 수 없습니다. 이는 구현 부분이 없기 때문입니다.

변수포함 불가 인터페이스 내부에는 상태값을 위한 변수를 추가할 수 없습니다. 대신에 상수는 정의가 가능합니다.

분리 인터페이스는 소프트웨어 공학에서 이야기 하는 관심 분리 (Separate of concern)원칙을 적용한 것입니다.

UML

인퍼페이스는 << >> 스트레오 타입을 이용하여 표기를 합니다.

간접호출

인터페이스를 이용하여 간접 호출을 합니다. 구현된 클래스를 직접 호출하지 않습니다.

이는 인터페이스를 이용하여 여러 구현체를 만들 수 있는 장점입니다.

구현

인터페이스는 interface 키워드를 이용하여 정의 합니다. 그리고 인터페이스로 정의된 메소드들은 모두 구현을 해야 합니다.

만일 구현이 되어 있지 않으면 오류가 발생이 됩니다.