C# Polymorphism

AhmetKürşadYILDIZ
2 min readApr 28, 2024

--

C# Polimorfizim Nedir ve Nasıl Uygulanır?

Polimorfizim, C# programlama dilinde bir nesnenin farklı davranışlar gösterebilme yeteneğidir. Bu, aynı kodun farklı veri türleri üzerinde çalışmasına veya farklı durumlarda farklı şekilde davranmasına olanak tanır. Polimorfizim, nesneye odaklı programlamanın temel bir ilkesidir ve kodun daha esnek ve tekrar kullanılabilir olmasını sağlar.

Polimorfizim iki ana şekilde uygulanır:

1. Sanal Yöntemler:

Sanal yöntemler, bir sınıfın mirasçı sınıflar tarafından geçersiz kılınabilecek yöntemleridir. Bu, mirasçı sınıfların, temel sınıftaki yöntemi kendi özel gereksinimlerine göre uyarlamasına olanak tanır. Sanal yöntemler, C# dilinde polimorfizmi uygulamanın en yaygın yoludur.

Sanal yöntemleri kullanmak için aşağıdaki adımları izleyin:

  • Temel sınıfta sanal bir yöntem tanımlayın.
  • Mirasçı sınıflarda sanal yöntemi geçersiz kılın.
  • Temel sınıfın nesnesine bir referans kullanarak sanal yöntemi çağırın.

2. Arayüzler:

Arayüzler, bir nesnenin uyması gereken bir dizi yöntem ve özelliği tanımlar. Farklı sınıflardan nesneler aynı arayüze sahip olabilir ve bu da onları birbirinin yerine kullanmayı mümkün kılar. Arayüzler, kodda daha fazla soyutlama ve esneklik sağlamak için kullanılır.

Arayüzleri kullanmak için aşağıdaki adımları izleyin:

  • Bir arayüz tanımlayın.
  • Bir sınıfta arayüze uygulayın.
  • Arayüzün bir nesnesine bir referans kullanarak yöntemleri çağırın.

Polimorfizmin faydaları şunlardır:

  • Kodun daha esnek ve tekrar kullanılabilir olmasını sağlar.
  • Kodda daha fazla soyutlama ve modülerlik sağlar.
  • Hata ayıklamayı kolaylaştırır.

Polimorfizmi kullanırken dikkat edilmesi gereken bazı noktalar şunlardır:

  • Sanal yöntemleri kullanırken, mirasçı sınıfların sanal yöntemi nasıl geçersiz kıldığını anlamak önemlidir.
  • Arayüzleri kullanırken, farklı sınıflardan nesnelerin nasıl etkileşime gireceğini anlamak önemlidir.
  • Polimorfizmi aşırı kullanmaktan kaçının, çünkü bu kodun karışıklığını ve karmaşıklığını artırabilir.

Polimorfizim, C# programlama dilinde güçlü bir araçtır ve kodun daha esnek ve tekrar kullanılabilir olmasını sağlar. Polimorfizmi etkili bir şekilde kullanmak, kodun daha temiz ve sürdürülebilir olmasını sağlayabilir.

C# Polimorfizim Örneği: Hayvan Sınıfları

Bu örnekte, polimorfizmi kullanarak bir hayvan hiyerarşisi simüle edeceğiz. Temel bir Hayvan sınıfı oluşturacağız ve ardından Köpek ve Kedi gibi alt sınıflar oluşturacağız. Her sınıfın kendi SesCikar() yöntemi olacaktır.

class Hayvan
{
public virtual void SesCikar()
{
Console.WriteLine("Hayvan sesi");
}
}
class Kopek : Hayvan
{
public override void SesCikar()
{
Console.WriteLine("Hav hav!");
}
}
class Kedi : Hayvan
{
public override void SesCikar()
{
Console.WriteLine("Miyav!");
}
}
class Program
{
static void Main(string[] args)
{
Hayvan[] hayvanlar = new Hayvan[] { new Kopek(), new Kedi() };
foreach (Hayvan hayvan in hayvanlar)
{
hayvan.SesCikar();
}
}
}

Bu kodda, Hayvan sınıfında SesCikar() adında sanal bir yöntem tanımladık. Bu yöntem, temel sınıfın tüm nesneleri tarafından çağrılabilir. Kopek ve Kedi alt sınıfları, SesCikar() yöntemini temel sınıftaki yöntemi geçersiz kılmak için kendi sürümlerini tanımlar.

Main() yönteminde, Hayvan türünde bir dizi oluşturuyoruz ve bu diziye bir Kopek ve bir Kedi nesnesi ekliyoruz. Ardından, dizideki her hayvan için SesCikar() yöntemini çağırıyoruz. Bu, her hayvanın kendi özel sesini çıkarmasını sağlayacaktır.

Çıktı:

Hav hav!
Miyav!

Bu örnekte, polimorfizmin nasıl kullanılacağını ve kodun daha esnek ve tekrar kullanılabilir olmasını nasıl sağlayabileceğini gösterdik. Polimorfizmi kullanarak, farklı nesnelerin aynı arayüze sahip olmasını sağlayabilir ve bu da kodun daha kolay yönetilebilir ve sürdürülebilir olmasını sağlayabilir.

--

--