>백엔드 개발 >PHP 문제 >PHP는 다중 상속을 지원합니까?

PHP는 다중 상속을 지원합니까?

(*-*)浩
(*-*)浩원래의
2019-09-12 09:18:495592검색

PHP는 다중 상속을 지원합니까?

질문: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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