여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. PHP - 기초 - OOP 인터페이스
PHP – 기초 – OOP 인터페이스
2년전 작성
12개월전 수정

인터페이스 란?

인터페이스를 사용하면 클래스에서 구현해야 하는 메서드를 지정할 수 있다.

인터페이스를 사용하면 다양한 클래스를 같은 방식으로 쉽게 사용할 수 있다.
하나 이상의 클래스가 동일한 인터페이스를 사용하는 경우 이를 “다형성”이라고한다.

인터페이스는 interface키워드로 선언된다.

interface InterfaceName {
public function someMethod1();
public function someMethod2($name, $color);
public function someMethod3() : string;
}

이런식으로 입력한다.

인터페이스 vs 추상 클래스

인터페이스는 추상 클래스와 유사하다.
인터페이스와 추상 클래스의 차이점에 대해 알아보자.

  • 인터페이스는 속성을 가질 수 없지만 추상 클래스는 속성을 가질 수 있다.
  • 모든 인터페이스 메서드는 public이어야 하지만 추상 클래스 메서드는 public 또는 protected다.
  • 인터페이스의 모든 메서드는 추상적이므로 코드로 구현할 수 없으며 추상 키워드가 필요하지 않는다.
  • 클래스는 동시에 다른 클래스에서 상속하면서 인터페이스를 구현할 수 있다.

인터페이스 사용

implements인터페이스를 구현하려면 클래스에서 키워드 를 사용해야한다.

인터페이스를 구현하는 클래스는 인터페이스의 모든 메서드를 구현해야한다.

예시

예시를 통해 공부해보자.

PHP
<?php
interface Animal {
public function makeSound();
}

class Cat implements Animal {
public function makeSound() {
echo "Meow";
}
}

$animal = new Cat();
$animal->makeSound();
?>
기본 예시
Meow
모든 동물이 할 수 있는 행동이 있지만 각 동물은 고유한 방식으로 행동한다.

PHP
<?php
interface Animal {
public function makeSound();
}

class Cat implements Animal {
public function makeSound() {
echo " Meow ";
}
}

class Dog implements Animal {
public function makeSound() {
echo " Bark ";
}
}

class Mouse implements Animal {
public function makeSound() {
echo " Squeak ";
}
}

$cat = new Cat();
$dog = new Dog();
$mouse = new Mouse();
$animals = array($cat, $dog, $mouse);

foreach($animals as $animal) {
$animal->makeSound();
}
?>
기본 예시
Meow Bark Squeak
각 동물이 다르게 행동하더라도 모든 동물에 대해 작동할 수 있다.

makeSound()는 Cat, Dog, Mouse는 모두 Animal 인터페이스를 구현하는 클래스로 모두 이 메서드 를 사용하여 소리를 낼 수 있다.
이 때문에 우리는 각 동물이 어떤 종류의 동물인지 알지 못하더라도 모든 동물을 반복하여 소리를 내라고 말할 수 있다.

인터페이스는 클래스에 메서드 구현 방법을 알려주지 않기 때문에 각 동물은 고유한 방식으로 소리를 낼 수 있다.

PHP
<?php

?>
기본 예시

참고

Mingg`s Diary
밍구
공부 목적 블로그