>백엔드 개발 >PHP 튜토리얼 >PHP에서 인터페이스는 어떻게 사용됩니까?

PHP에서 인터페이스는 어떻게 사용됩니까?

伊谢尔伦
伊谢尔伦원래의
2017-07-03 10:23:321734검색

Interface

PHP 클래스는 단일 상속입니다. 즉, 클래스에 여러 클래스의 기능이 필요한 경우 상속은 무력합니다. 이러한 이유로 PHP는 인터페이스 기술을 도입했습니다.

abstract 클래스

의 모든 메소드는 추상 메소드이고, 선언된 변수 가 없으며 인터페이스의 모든 멤버가 공개 권한을 가지면 이 특수 추상 클래스를 인터페이스라고 합니다. 인터페이스는 인터페이스 키워드를 사용하여 정의됩니다. , 구현을 사용하여 인터페이스 메소드를 구현하고

인터페이스 구현

IPillage라는 인터페이스를 만들고 구현하는 방법은 다음과 같습니다. :

interface IPillage
{
 function emptyBakAccount();
 function burnDocument();
}

그런 다음 Executive 클래스를 통해 이 인터페이스를 구현합니다.

class Executive extends Employee implements IPillage
{
 private $totalStockOptions;
 function emptyBankAccount()
 {
  echo "Call CFO and ask to transfer funds to Swiss bank account.";
 }
 function burnDocuments()
 {
  echo "Torch the office suite.";
 }
}

이 인터페이스를 구현하는 Assistant 클래스가 있을 수 있습니다.

class Assistant extends Employee implements IPillage
{
 function takeMome()
 {
  echo "Taking memo...";
 }
 function emptyBankAccount()
 {
  echo "Go on shopping spree with office credit card.";
 }
 function burnDocuments()
 {
  echo "Start small fire in the trash can.";
 }
}

보시다시피 인터페이스는 특히 유용합니다. 인터페이스는 특정 동작을 수행하는 데 필요한 메서드 수와 각 메서드의 이름을 정의하지만 인터페이스를 사용하면 다양한 클래스에서 이러한 메서드를 다양한 방식으로 구현할 수 있습니다. 이 예에서 파일 굽기 방법의 경우 Assistdnt 클래스는 휴지통에 있는 파일만 굽는 반면 Executive 클래스는 더 극단적인 방법(사무실 굽기)을 수행합니다.

다중 인터페이스 구현

모든 정규직 직원의 노력으로 회사가 세워졌는데 외부 계약자의 회사 침해를 허용한다면 이는 불공평할 것입니다. 즉, 직원에게 일자리를 제공하고 회사 기능을 침해하는 동시에 계약업체가 필요한 작업만 완료하도록 제한하는 방법은 무엇입니까? 해결책은 이러한 작업을 여러 작업으로 나눈 다음 필요한 여러 인터페이스를 구현하는 것입니다. PHPS는 이 기능을 지원합니다. 다음 예를 고려하십시오.

<?php
 interface IEmployee{...}
 interface IDeveloper{...}
 interface IPillage{...}
 class Employee implements IEmployee,IDeveloper,iPillage {
 ...
 }
 class Contractor implements IEmployee,IDeveloper {
 ...
 }
?>

추상 클래스와 인터페이스의 차이점

인터페이스는 특별한 추상 클래스이며 모델의 사양으로 간주될 수도 있습니다. 인터페이스와 추상 클래스의 일반적인 차이점은 다음과 같습니다. 하위 클래스가 인터페이스를 구현하는 경우 인터페이스의 모든 메서드를 구현해야 합니다(필요 여부에 관계없이). 추상 클래스를 상속하는 경우 필수 메서드만 구현하면 됩니다.
인터페이스가 인터페이스에 정의된 메서드 이름이 변경되면 이 인터페이스를 구현하는 모든 하위 클래스는 메서드 이름을 동기적으로 업데이트해야 하며 추상 클래스에서 메서드 이름이 변경되면 하위 클래스에 해당하는 메서드 이름이 변경되지 않습니다. 영향을 받지만 새로운 클래스가 됩니다.
 추상 클래스는 단독으로만 상속될 수 있습니다. 하위 클래스가 여러 상위 클래스에서 상속해야 하는 함수를 구현해야 하는 경우 인터페이스


코드 예제를 사용해야 합니다. 으아악

위 내용은 PHP에서 인터페이스는 어떻게 사용됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.