Sobes.tech
Junior

Programlamada çok biçimlilik (polimorfizm) anlamı nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Polimorfizm, ortak bir arayüze sahip farklı sınıflardan nesnelerin, ortak bir "tür" (örneğin, temel sınıf veya arayüz) aracılığıyla kullanılmasına izin verir.

Ana amacı:

  • Nesnelerle çalışma birleştirmesi: Belirli bir nesne türüne bağlı olmayan, soyutlama aracılığıyla onunla çalışan kod yazmayı sağlar.
  • Esneklik: Aynı arayüzü uygulayan yeni sınıflar eklemek kolaydır, mevcut kodu değiştirmeden.
  • Okunabilirlik ve sürdürülebilirlik: Kod daha yapılandırılmış ve anlaşılır hale gelir, çünkü karmaşıklık tek bir arayüz arkasına gizlenir.

Prensip, aynı metodun farklı nesnelerde çağrıldığında, onların somut türüne bağlı olarak farklı davranmasıdır.

PHP örneği:

<?php

interface Animal {
    public function makeSound();
}

class Dog implements Animal {
    public function makeSound() {
        return "Woof!";
    }
}

class Cat implements Animal {
    public function makeSound() {
        return "Meow!";
    }
}

function hearAnimalSound(Animal $animal) {
    echo $animal->makeSound() . "\n";
}

$dog = new Dog();
$cat = new Cat();

hearAnimalSound($dog); // "Woof!" yazdırır
hearAnimalSound($cat); // "Meow!" yazdırır

?>

Bu örnekte, hearAnimalSound fonksiyonu, Animal arayüzünü uygulayan herhangi bir nesneyi kabul eder. Bu fonksiyon içindeki makeSound() metodunun çağrısı, Dog ve Cat nesneleri için farklı davranır, bu da polimorfizmi gösterir.