>  기사  >  백엔드 개발  >  PHP의 다형성

PHP의 다형성

墨辰丷
墨辰丷원래의
2018-06-09 11:57:046253검색

이 글은 주로 PHP의 다형성을 소개합니다. 관심 있는 친구들이 참고하면 도움이 될 것입니다.

다형성 정의: 객체의 특정 클래스가 아닌 인터페이스나 기본 클래스에만 관심을 갖습니다. (동일한 유형, 다른 결과)

다음은 두 가지 예입니다.

먼저 기본 클래스가 표준을 정의하고 하위 클래스가 자체 규칙을 구현한다는 것을 발견했습니다. 이는 다형성의 요구 사항입니다. 동시에 이는 재작성을 만족시키기 위한 것입니다. 실제로는 서로 다른 클래스의 성능이 다르기 때문에 인터페이스나 기본 클래스 프로그래밍을 엄격히 만족시키지는 않습니다. 호출할 때 stu->showGrade()가 아니라 자체 메서드이기 때문입니다.


class stu{

  public function showGrade(){
    echo "base class";  
  }

}


class xiaomin extends stu{

  public function showGrade(){
    echo "is son show 80";  
  } 
}

class xiaoli extends stu{

  public function showGrade(){
    echo "is son show 60";  
  } 
}

function doit($obj){

  if(get_class($obj) != "stu"){
    $obj->showGrade();
  }

}

doit(new xiaoli());
doit(new xiaomin());


두 번째 예: dovoice 매개변수는 $obj를 동물로 지정하고 인식은 구현 클래스 객체를 받아들이는 인터페이스입니다. 상향 변환. 이는 동일한 유형과 일치하지만 결과가 다릅니다.

사실 Java에서는 PHP가 유형화된 언어이기 때문에 이와 같습니다. 객체 변환 메커니즘이 없습니다.


interface animal{
  public function voice();
}

class cat implements animal{
  public function voice(){
    echo "miao~~~<br>";
  }
}

class dog implements animal{
  public function voice(){
    echo "wang ~~~<br>";
  }
}

function dovoice(animal $obj){
  $obj->voice();
}


dovoice(new dog());
dovoice(new cat());

요약: 위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되길 바랍니다.

관련 권장 사항:

php Unordered Tree Implement Techniques

php Unordered Tree Implement Techniques

PHP는 이미지 크기 수정, 워터마킹, 인증 코드 생성, 출력 및 저장을 수행합니다.

위 내용은 PHP의 다형성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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