다형성이란 무엇인가요?
다형성은 데이터베이스 추상화 및 상속에 이어 객체 지향언어의 세 번째 기능입니다. 다형성(Polymorphism)은 여러 형태를 의미하며 여러 형태를 표현할 수 있는 능력을 가지고 있습니다. 객체 지향 표현에서는 객체 유형에 따라 다르게 처리됩니다. 다형성을 통해 각 개체는 고유한 방식으로 공통 메시지에 응답할 수 있습니다. 다형성은 소프트웨어 유연성과 재사용성을 향상시킵니다.
doing() 메소드를 생성하면 학생이라면 수업용으로, 회사원이라면 업무용으로 출력합니다.
일반적인 접근 방식
판단이 필요한 경우 사용
/** * PHP多态性 */ // 定义学生类 class student{ public function cla(){ echo "学生工正在上课!<br />"; } } // 定义职员类 class office{ public function Wor(){ echo "职员正在上班!<br />"; } } // 判断对象类型方法 function doing($obj){ if($obj instanceof student){ $obj->cla(); }elseif($obj instanceof office){ $obj->wor(); }else{ echo "没有这个对象!"; } } doing(new student()); // 学生正在上课 doing(new office()); // 职员正在上班
위 결과 출력:
Students are in class
Staff are work
이 일반적인 방법에는 단점이 있습니다. 즉, 개체가 많으면 if입니다. ..else... 길고 융통성이 없습니다.
다형성 연습
공개 추상 메서드를 정의하면 모든 하위 클래스가 이를 상속합니다.
/** * PHP多态性 */ // 定义一个公共类 class pub{ protected function working(){ echo "本方法需要在子类中重载!"; } } // 定义学生类,继承公共类pub class student extends pub{ public function working(){ echo "学生工正在上课!<br />"; } } // 定义职员类,继承公共类pub class office extends pub{ public function working(){ echo "职员正在上班!<br />"; } } // 判断对象类型方法 function doing($obj){ if($obj instanceof pub){ $obj->working(); }else{ echo "没有这个对象!"; } } doing(new student()); // 学生正在上课 doing(new office()); // 职员正在上班
다형성, 유연한 재사용이 특징입니다.
기타 사례
다형성 구현의 관점에서 보면 통일된 효과를 얻기 위해 각 클래스가 상위 클래스의 메서드를 재정의해야 한다는 표준화에 지나지 않습니다. 클래스를 정의할 때 자체적으로 통합된 메소드를 추가하는 것도 가능합니다. 따라서 위의 예는 다음과 같이 구현할 수도 있습니다.
/** * PHP多态性 */ // 定义学生类 class student{ // 定义统一的方法pub public function pub(){ echo "学生工正在上课!<br />"; } } // 定义职员类 class office{ // 定义统一的方法pub public function pub(){ echo "职员正在上班!<br />"; } } // 判断对象类型方法 function doing($obj){ if($obj){ // 调用类的统一方法 $obj->pub(); }else{ echo '没有这个对象'; } } doing(new student()); // 学生正在上课 doing(new office()); // 职员正在上班
다형성은 프로그래밍 방법으로도 이해될 수 있으며 프로그래밍의 궁극적인 목표는 유연성, 다형성, 재사용 및 효율성에 지나지 않습니다.
위 내용은 다형성이란 무엇입니까? PHP 객체 지향 다형성 예제 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!