[php] 다형성
class Animal {
public function makeSound() {
echo "Some generic sound";
}
}
class Dog extends Animal {
public function makeSound() {
echo "Woof woof";
}
}
class Cat extends Animal {
public function makeSound() {
echo "Meow meow";
}
}
$animal1 = new Dog();
$animal1->makeSound(); // 출력 결과: Woof woof
$animal2 = new Cat();
$animal2->makeSound(); // 출력 결과: Meow meow
위의 예제에서 Animal
클래스는 makeSound
메소드를 정의하고 있습니다. Dog
클래스와 Cat
클래스는 Animal
클래스를 상속하고, makeSound
메소드를 오버라이딩하여 다른 소리를 출력하고 있습니다. 이렇게 다형성을 사용하면 동일한 메소드를 호출하지만 실제로 실행되는 메소드는 객체의 타입에 따라 다르게 동작합니다.
이와 같이 다형성은 코드의 재사용성을 높이고 유지보수를 용이하게 만들어줍니다. 객체 지향 프로그래밍에서는 다형성을 통해 유연하고 확장 가능한 코드를 작성할 수 있습니다.