>  기사  >  백엔드 개발  >  다중 상속을 달성하기 위한 PHP 인터페이스 다중 상속 및 tarits 방법

다중 상속을 달성하기 위한 PHP 인터페이스 다중 상속 및 tarits 방법

jacklove
jacklove원래의
2018-07-02 18:01:461833검색

이 기사에서는 다중 상속 효과를 달성하기 위한 PHP 인터페이스 다중 상속 방법과 타릿을 주로 소개합니다. PHP 인터페이스 기반 다중 상속과 PHP5.4에서 도입된 타릿의 간단한 조작 기술을 분석하여 다중 상속 기능을 구현합니다. 예제 형식은

를 참조하세요. 이 문서의 예제에서는 다중 상속 효과를 얻기 위한 PHP 인터페이스의 다중 상속 방법과 타릿을 설명합니다. 참조를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

인터페이스 다중 상속

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("周杰伦");
//运行结果
/**
  接口继承,要实现父接口所有相关方法!
  模特正在跳舞!
  周杰伦正在唱歌!
**/

tar 다중 상속

다음 중 하나입니다. 다중 상속 클래스는 여러 부모 클래스를 동시에 상속하고 여러 부모 클래스의 기능을 결합할 수 있습니다. 이 모델은 C++에서 통합 유연성을 향상시키는 데 사용됩니다. 그러나 다중 상속은 너무 유연하여 "다이아몬드 상속"으로 이어집니다. , 그래서 사용하는데 몇 가지 문제가 있습니다. 많은 어려움이 있고 모델이 더욱 복잡해졌습니다. 이제 대부분의 언어는 다중 상속 모델을 포기했습니다.
근데 가끔 다중상속을 사용하고 싶은데 PHP에는 다중상속이 없어서 그런 걸 발명했어요.

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

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

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

당신이 관심을 가질 만한 기사:

thinkPHP5 프레임워크 데이터베이스 일관성 작업의 캐시() 사용법에 대한 자세한 설명

thinkPHP3.2 페이징 사용자 정의 스타일 구현 방법에 대한 설명

Laravel 프레임워크 + 구현된 다중 이미지 업로드 기능 예제의 Blob 분석

위 내용은 다중 상속을 달성하기 위한 PHP 인터페이스 다중 상속 및 tarits 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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