>  기사  >  백엔드 개발  >  PHP에서 인터페이스 상속을 구현하고 다중 상속 원칙을 인터페이스하는 방법

PHP에서 인터페이스 상속을 구현하고 다중 상속 원칙을 인터페이스하는 방법

黄舟
黄舟원래의
2017-10-19 09:21:002117검색

이 글에서는 주로 PHP 인터페이스 상속과 인터페이스 다중 상속의 원리와 구현 방법을 소개합니다. 인터페이스 상속과 다중 인터페이스 상속의 개념과 원리를 간략하게 설명하고 PHP 인터페이스 상속의 구체적인 구현과 사용 방법을 형식으로 제공합니다. 필요한 친구들은 참고하면 됩니다

이 글에서는 PHP 인터페이스 상속과 인터페이스 다중 상속의 원리와 구현 방법을 예시로 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

PHP 인터페이스에서 인터페이스는 인터페이스를 상속할 수 있습니다. PHP 클래스는 하나의 상위 클래스(단일 상속)에서만 상속할 수 있지만 인터페이스는 클래스와 다르며 다중 상속을 구현할 수 있으며 하나 이상의 인터페이스를 상속할 수 있습니다. 물론, 인터페이스 상속에서도 확장 키워드를 사용합니다. 다중 상속을 원할 경우 쉼표를 사용하여 상속된 인터페이스를 구분하면 됩니다.

인터페이스가 다른 인터페이스를 상속하는 경우 상위 인터페이스의 정적 상수 속성과 추상 메서드를 직접 상속하므로 클래스는 인터페이스를 구현할 때 관련된 모든 추상 메서드를 구현해야 합니다.

이제 PHP 인터페이스의 상속에 대해 어느 정도 이해하셨습니다. 다음 예제는 참고용입니다.


<?php
interface father{
  function shuchu();
}
interface fam extends father{
  function cook($name);
}
class test implements fam{
  function shuchu(){
    echo "接口继承,要实现两个抽象方法";
    echo "<br>";
  }
  function cook($name){
    echo "平时经常做饭的人是:".$name;
  }
}
$t=new test();
$t->shuchu();
$t->cook("妈妈");
?>

코드 실행 결과는 다음과 같습니다.


接口继承,要实现两个抽象方法
平时经常做饭的人是:妈妈

The 위의 예에서는 인터페이스가 인터페이스를 상속하므로 테스트 클래스가 fam 인터페이스를 구현할 때 두 개의 추상 메서드를 인스턴스화해야 합니다. 즉, 인터페이스의 하위 클래스와 상위 클래스의 추상 메서드를 모두 인스턴스화해야 합니다.

인터페이스 다중 상속의 예를 살펴보겠습니다. 코드는 다음과 같습니다.


<?php
interface father{
  function shuchu();
}
interface mother{
  function dayin($my);
}
interface fam extends father,mother{
  function cook($name);
}
class test implements fam{
  function dayin($my){
    echo "我的名字是:".$my;
    echo "<br>";
  }
  function shuchu(){
    echo "接口继承,要实现两个抽象方法";
    echo "<br>";
  }
  function cook($name){
    echo "平时经常做饭的人是:".$name;
  }
}
$t=new test();
$t->shuchu();
$t->dayin("小强");
$t->cook("妈妈");
?>

실행 결과 예:


接口继承,要实现两个抽象方法
我的名字是:小强
平时经常做饭的人是:妈妈

인터페이스가 두 개의 인터페이스를 상속하므로 이 코드에서는 모든 인스턴스에 이 세 가지가 필요합니다. 추상 클래스의 추상 메소드는 인스턴스이며 총 3개가 있습니다. 이 두 예제를 읽고 나면 인터페이스 상속에 익숙해질 것입니다. 실제로 관련된 모든 추상 메서드가 구현되는 한 단일 상속과 다중 상속이 있습니다.

위 내용은 PHP에서 인터페이스 상속을 구현하고 다중 상속 원칙을 인터페이스하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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