PHP는 다중 상속을 지원하지 않는데 다중 상속을 어떻게 구현하나요?
인터페이스 또는 특성을 사용하여 구현 가능
인터페이스 여기서는 너무 많이 설명하지 않겠습니다. 원칙은 하나의 클래스가 여러 인터페이스를 구현할 수 있다는 것입니다. 다음 코드는 이를 설명할 수 있습니다.
interface test1{ public function connect(); } interface test2{ public function contact(); } // 类可以同时实现多个接口 class myCode implements test1,test2{ public function connect(){ echo "test1!"; } public function contact(){ echo "test2!": } }
이제 특성이 다중 상속을 구현하는 방법에 집중해 보겠습니다(실제로는 다중 상속이라고 부르지 않고 다중 상속과 비슷한 함수라고 불러야 합니다)
특성이란 무엇인가요?
답변: 클래스와 둘 다처럼 보입니다. 인터페이스이지만 실제로는 Trait은 하나 이상의 기존 PHP 클래스와 혼합될 수 있는 클래스의 부분 구현으로 간주될 수 있습니다. 클래스가 수행할 수 있는 작업을 표시하고 모듈식 구현을 제공하는 것입니다. Trait은 PHP의 단일 상속 제한에 대해 유연한 코드 재사용 메커니즘을 제공하는 코드 재사용 기술입니다.
그럼 특성을 어떻게 구현하나요? 아래 코드를 보세요:
//基本类 class basicTest{ public function test(){ echo "hello,world\n"; } } //traitOne trait traitOne{ public function test(){ echo "this is trait one"; } public function testOne(){ echo "one<br />"; } } //traitTwo trait traitTwo{ // public function test(){ // echo "this is trait two!"; // } public function testTwo(){ echo "Two<br />"; } } //继承基本类,并use trait class myCode extends basicTest{ use traitOne,traitTwo; public function test(){ echo "hehaha!!<br />"; } } $obj = new myCode(); $obj->testTwo();
참고:
우선순위: 자체 메서드 > 특성 메서드 > 상속된 메서드 (이런 모습입니다.)
위 코드에서 주석을 열면 오류가 보고됩니다. , 각 특성의 두 메서드 이름이 동일하기 때문입니다.
추천 튜토리얼: PHP 비디오 튜토리얼
위 내용은 PHP는 단일 상속인가요, 아니면 다중 상속인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!