다형성은 객체 지향 프로그래밍의 핵심 개념 중 하나이며, 동일한 메소드 호출과 다른 동작을 보여주는 다른 객체를 나타냅니다. PHP에서, 다형성은 상속 및 방법 재 작성을 통해 유연하게 구현 될 수있어 코드를보다 간결하고 효율적으로 만듭니다.
상속은 다형성을 구현하기위한 기본 메커니즘입니다. 서브 클래스가 상위 클래스의 속성과 방법을 상속받을 수 있으며, 부모 클래스의 메소드를 무시하고 서브 클래스에 다른 동작을 제공 할 수 있습니다.
방법 다시 쓰기는 다형성 구현의 핵심입니다. 상위 클래스의 메소드를 재정의함으로써 서브 클래스는 메소드의 동작을 변경하고 실제 유형에 따라 다른 작업에 응답 할 수 있습니다.
동물 통화를 반환하는 건전한 방법을 포함하는 간단한 부모 수업 동물을 정의하십시오.
class Animal {
protected $name;
public function __construct($name) {
$this->name = $name;
}
public function sound() {
return "I am an animal.";
}
}
두 개의 서브 클래스 고양이 와 개가 동물 에서 물려 받고 사운드 방법을 무시합니다.
class Cat extends Animal {
public function sound() {
return "Meow!";
}
}
class Dog extends Animal {
public function sound() {
return "Woof!";
}
}
배열을 통해 다른 동물 물체를 저장하고, 트래버스 및 사운드 방법을 호출하여 다형성 특성을 보여줍니다.
$animals = [
new Cat("Tom"),
new Dog("Max")
];
foreach ($animals as $animal) {
echo $animal->sound() . "<br>";
}
실행 결과 :
야옹!
씨!
다형성은 코드를보다 유연하고 확장 가능하게 만듭니다. 새로운 기능을 추가 할 때는 기존 코드를 수정할 필요가 없습니다. 새 하위 클래스를 추가하고 해당 메소드를 다시 작성하십시오.
예를 들어, 동물 클래스에 Eat Method를 추가하고 하위 클래스에서 각각의 행동을 구현할 수 있습니다.
class Cat extends Animal {
public function eat() {
return "I am eating a fish.";
}
}
class Dog extends Animal {
public function eat() {
return "I am eating a bone.";
}
}
이러한 방식으로, 다른 서브 클래스는 기존 클래스 구조에 영향을 미치지 않으면 서 다른 EAT 구현을 가질 수 있습니다.
다형성은 PHP 객체 지향 프로그래밍의 중요한 기능입니다. 상속 및 방법 재 작성을 통해 다른 객체는 다른 방식으로 동일한 메시지에 응답하여 코드의 유연성과 확장 성을 향상시키고 수요 및 코드 유지 보수의 변화에 효과적으로 응답 할 수 있습니다.