"Enter"a basıp içeriğe geçin

C# Polymorphism Nedir ve Neden Önemlidir?

Polymorphism, nesne yönelimli programlama (OOP) paradigmasının önemli bir kavramıdır. C# Polymorphism nedir? Polymorphism, Yunanca “çok biçimlilik” anlamına gelir ve bir nesnenin farklı şekillerde davranabilmesini sağlar. Polymorphism sayesinde, aynı isme sahip farklı sınıflardan türetilmiş nesneler, aynı arayüzü kullanarak farklı işlevler gerçekleştirebilirler. Bu, kodun yeniden kullanılabilirliğini, esnekliğini ve bakımını kolaylaştırır.

C# dilinde Polymorphism, soyut sınıflar, sanal metotlar ve geçersiz kılma (override) mekanizması ile sağlanır. Soyut sınıflar, diğer sınıfların kalıtım alabileceği ama kendisinden nesne oluşturulamayan sınıflardır. Soyut sınıfların içinde soyut metotlar tanımlanabilir. Soyut metotlar, gövdesi olmayan ve türetilen sınıflarda uygulanması zorunlu olan metotlardır. Sanal metotlar ise gövdesi olan ama türetilen sınıflarda isteğe bağlı olarak geçersiz kılınabilen metotlardır. Geçersiz kılma ise, türetilen sınıfta aynı imzaya sahip bir metodu yeniden tanımlayarak, temel sınıftaki davranışını değiştirmektir.

Polymorphismin nasıl çalıştığını görmek için basit bir örnek yapalım. Bir Hayvan soyut sınıfı tanımlayalım ve içine bir SesCikar soyut metodu ekleyelim. Sonra bu sınıftan Kedi ve Kopek sınıflarını türetelim ve SesCikar metodunu geçersiz kılalım. Son olarak da bir Hayvan dizisi oluşturup içine farklı türden nesneler atayalım ve döngü ile SesCikar metodunu çağıralım.

//Soyut Hayvan sınıfı
abstract class Hayvan {
    //Soyut SesCikar metodu
    public abstract void SesCikar();
}

//Hayvan sınıfından türetilen Kedi sınıfı
class Kedi : Hayvan {
    //SesCikar metodunu geçersiz kılıyoruz
    public override void SesCikar() {
        Console.WriteLine("Miyav");
    }
}

//Hayvan sınıfından türetilen Kopek sınıfı
class Kopek : Hayvan {
    //SesCikar metodunu geçersiz kılıyoruz
    public override void SesCikar() {
        Console.WriteLine("Hav");
    }
}

//Ana program
class Program {
    static void Main(string[] args) {
        //Hayvan tipinde bir dizi oluşturuyoruz
        Hayvan[] hayvanlar = new Hayvan[2];
        //Diziye farklı türden nesneler atıyoruz
        hayvanlar[0] = new Kedi();
        hayvanlar[1] = new Kopek();
        //Döngü ile dizideki her nesnenin SesCikar metodunu çağırıyoruz
        foreach (Hayvan h in hayvanlar) {
            h.SesCikar();
        }
    //Çıktı:
    //Miyav
    //Hav
    }
}

Bu örnekte görüldüğü gibi, aynı isme sahip SesCikar metodu, farklı türden nesneler için farklı çıktılar verdi. Bu, Polymorphismin gücünü gösterir. Polymorphismsayesinde, kodumuzu daha genel ve soyut hale getirebilir, farklı durumlara uyum sağlayabilir ve daha kolay yönetebiliriz.

Bu yazıda C#’ta Polymorphism konusunu anlattım. Umarım faydalı olmuştur. Polymorphism ile ilgili daha fazla bilgi için https://docs.microsoft.com/tr-tr/dotnet/csharp/programming-guide/classes-and-structs/polymorphism tıklayabilirsiniz. Yorumlarınızı ve sorularınızı bekliyorum. Sağlıcakla kalın.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.