본문으로 바로가기

[PHP] 인터페이스(Interface) - emplement

category Helloworld!/PHP 2013. 9. 10. 23:45

인터페이스(Interface)


- 인터페이스는 클래스와 유사하지만 정의되지 않은 함수들만 가질 수 있는 것이 특징

- 인터페이스를 상속받는 클래스는 implements 키워드를 사용한다

- 참고로 함수를 정의할때는 function mockFunction(); 이런식으로만 상용하고 정의를 하지 않는다.

- 또한 당연히 인터페이스는 객체(인스턴스)를 만들 수 없다.

  (인터페이스는 실객체가 아니다 : 기능 스펙을 모아 명세해놓기만 한것)

- 다른 클래스 간에 공통적인 기능을 정의할 때 인터페이스 사용

- 인터페이스 내부에 공통기능을 선언하고 하위 클래스에 인터페이스 내에서 선언된 메소들을 구현


+) 추가 설명

보통 상속받는 클래스의 몇가지 필수 기능(함수)를 정의하기 위해 사용

즉, 이 기능은 반드시 만들어야한다라고 규정하는 일종의 규칙을 정의하는 것이다.

(어떤 기능을 세부적으로 정의하지는 않지만 이러한 기능이 필요 할 것이다라고 정의하는 방식)


인터페이스 이점

- 다른 객체 지향 언어를 공부할 때 편리

- 좀 더 유연한 프로그램 만들 수 있음

- 웹이나 프레임 워크를 이해하는데 도움이 됨


ex)


interface Translate { //인터페이스 정의부분
    function Korean();
    function English();
}

class Greeting Implements Translate {
    function Korea() {
        echo "안녕하세요"; //인터페이스로 정의한 부분을 실체화하는 부분
    }
    function English() {
        echo "Hello";
    }
}

class Fruit Implement Translate {
    function Korea() {
        echo "사과";
    }
    function English() {
        echo "apple";
    }
}

$trans1 = new Greeting();
$trans2 = new Fruit();

$tran1->Korean(); //안녕하세요
$tran1->English(); //Hello

$tran2->Korean(); //사과
$tran2->English(); //apple