>  기사  >  백엔드 개발  >  PHP 인터페이스 다중 상속 및 tarits는 다중 상속 예제 공유를 구현합니다.

PHP 인터페이스 다중 상속 및 tarits는 다중 상속 예제 공유를 구현합니다.

小云云
小云云원래의
2018-01-11 10:47:141617검색

이 기사에서는 다중 상속 효과를 달성하기 위한 PHP 인터페이스 다중 상속 방법과 타릿을 주로 소개합니다. PHP 인터페이스 기반 다중 상속과 PHP5.4에서 도입된 타릿의 간단한 조작 기술을 분석하여 다중 상속 기능을 구현합니다. 도움이 필요한 친구들이 참고할 수 있는 형태입니다. 다음으로, 모두에게 도움이 되기를 바랍니다.

인터페이스 다중 상속

PHP의 객체 지향 인터페이스에서 인터페이스는 인터페이스를 상속할 수 있습니다. PHP 클래스는 하나의 상위 클래스(단일 상속)에서만 상속할 수 있지만 인터페이스는 다중 상속을 구현하고 하나 이상의 인터페이스를 상속할 수 있습니다. 물론, 인터페이스 상속은 클래스 상속과 마찬가지로 확장 키워드를 사용합니다. 다중 상속을 원할 경우 상속된 인터페이스를 쉼표로 구분하면 됩니다.

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

다음은 예입니다.

1. 단일 인터페이스 상속


<?php
interface testA{
  function echostr();
}
interface testB extends testA{
  function dancing($name);
}
class testC implements testB{
  function echostr(){
    echo "接口继承,要实现所有相关抽象方法!";
    echo "<br>";
  }
  function dancing($name){
    echo $name."正在跳舞!";
  }
}
$demo=new testC();
$demo->echostr();
$demo->dancing("模特");
//运行结果
/**
  接口继承,要实现所有相关抽象方法
  模特正在跳舞!
**/

2. 다중 인터페이스 상속


<?php
interface testA{
  function echostr();
}
interface testB{
  function dancing($name);
}
interface testC extends testA,testB{
  function singing($nickname);
}
class testD implements testC{
  function echostr(){
    echo "接口继承,要实现父接口所有相关方法!";
    echo "<br />";
  }
  function dancing($name){
    echo $name."正在跳舞!";
    echo "<br />";
  }
  function singing($nickname){
    echo $nickname."正在唱歌!";
  }
}
$demo=new testD();
$demo->echostr();
$demo->dancing("模特");
$demo->singing("周杰伦");
//运行结果
/**
  接口继承,要实现父接口所有相关方法!
  模特正在跳舞!
  周杰伦正在唱歌!
**/

tarits 다중 상속

여러 클래스로 구성된 하나의 수업 C++에서는 통합의 유연성을 높이기 위해 여러 부모 클래스를 동시에 상속하고 여러 부모 클래스를 결합하는 기능을 사용합니다. 그러나 다중 상속은 너무 유연하여 "다이아몬드 상속"이 발생하므로 많은 문제가 있습니다. 사용이 어려워지면서 모델이 더욱 복잡해졌고 이제 대부분의 언어는 다중 상속 모델을 포기했습니다.
근데 가끔 다중상속을 사용하고 싶은데 PHP에는 다중상속이 없어서 그런 걸 발명했어요.

특성은 다양한 클래스에서 호출할 수 있는 메서드 집합으로 이해될 수 있지만 특성은 클래스가 아닙니다! 인스턴스화할 수 없습니다. 예를 들어 구문을 살펴보겠습니다.


<?php
trait myTrait{
  function traitMethod1(){}
  function traitMethod2(){}
}
//然后是调用这个traits,语法为:
class myClass{
  use myTrait;
}
//这样就可以通过use myTraits,调用Traits中的方法了,比如:
$obj = new myClass();
$obj-> traitMethod1 ();
$obj-> traitMethod2 (); 
>

구체적인 소개 및 사용법은 공식 소개를 참조하세요.

관련 권장 사항:

인터페이스 상속을 구현하고 다중 상속 원칙을 인터페이스하는 PHP 메서드

PHP에 미리 정의된 6가지 인터페이스 분석

php는 인터페이스와 조합을 사용하여 다중 상속을 시뮬레이션합니다_PHP 튜토리얼

위 내용은 PHP 인터페이스 다중 상속 및 tarits는 다중 상속 예제 공유를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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