>백엔드 개발 >PHP 튜토리얼 >다중 상속 효과를 달성하기 위한 PHP 인터페이스 다중 상속 및 tarits 방법 튜토리얼 세부 정보

다중 상속 효과를 달성하기 위한 PHP 인터페이스 다중 상속 및 tarits 방법 튜토리얼 세부 정보

jacklove
jacklove원래의
2018-05-22 17:30:111587검색

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

인터페이스의 다중 상속

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

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

다음은 예입니다.

1. 단일 인터페이스 상속

i

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

2. 다중 인터페이스 상속

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 "
";
 
}
 
function dancing($name){
 
echo $name."正在跳舞!";
 
echo "
";
 
}
 
function singing($nickname){
 
echo $nickname."正在唱歌!";
 
}
 
}
 
$demo=new testD();
 
$demo->echostr();
 
$demo->dancing("模特");
 
$demo->singing("周杰伦");
 
//运行结果
 
/**
 
接口继承,要实现父接口所有相关方法!
 
模特正在跳舞!
 
周杰伦正在唱歌!
 
**/

tarits다중 상속

다중 상속에서는 클래스가 여러 상위 클래스를 동시에 상속할 수 있습니다. C++의 상위 클래스 함수는 통합의 유연성을 높이기 위해 이 모델을 사용합니다. 그러나 다중 상속은 너무 유연하여 "다이아몬드 상속"을 가져오기 때문에 사용에 많은 어려움이 있으며 모델이 되었습니다. 요즘에는 대부분의 언어가 다중 상속 모델을 포기했습니다.

근데 가끔 다중상속을 사용하고 싶은데 PHP에는 다중상속이 없어서 그런걸 발명했습니다.

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

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

이 문서의 예에서는 다중 상속 효과를 얻기 위한 PHP 인터페이스 및 타릿의 다중 상속 방법을 설명합니다. 더 많은 관련 지식을 보려면 다음을 참조하세요. PHP 중국어 웹사이트.

관련 권장 사항:

PHP 문자열 반전 인터뷰에서 자주 발생하는 질문

PHP는 문자 스트림에서 반복되지 않는 첫 번째 문자를 어떻게 얻습니까?

PHP는 한 줄의 코드를 사용하여 모든 파일을 삭제합니다. File method

디렉토리에 있습니다.

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

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