질문: PHP는 다중 상속을 지원합니까?
답변: 아니요, 단일 상속만 지원됩니다.
다중 상속을 구현하는 방법은 무엇입니까?
답변: 인터페이스나 특성을 사용하여 구현할 수 있습니다. (추천 학습: 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!": } }
특성이 다중 상속을 구현하는 방법에 집중해 보겠습니다(실제로는 다중 상속이라고 부르지 않고 다중 상속과 비슷한 함수라고 불러야 합니다)
특성이란 무엇인가요?
답변: 둘 다 클래스처럼 보입니다. 사실 특성은 하나 이상의 기존 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!