C# Polymorphism

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda Polymorphism konusunu anlatacağım. Hadi başlayalım !
Table of Contents
Tanımı
C# dilinde, polymorphism (çok biçimlilik), farklı sınıfların aynı isimli metotları kullanarak farklı davranışlar sergilemelerini sağlar. Bu sayede, kodun okunabilirliği ve yeniden kullanılabilirliği artar. Polymorphism, C#’da inheritance (kalıtım) ve interface’lerle sağlanır.
Class İle Kullanımı
Aşağıdaki örnek, inheritance kullanarak polymorphism sağlamak için bir örnektir:
public class Animal
{
public virtual void Eat()
{
Console.WriteLine("The animal is eating.");
}
}
public class Dog : Animal
{
public override void Eat()
{
Console.WriteLine("The dog is eating.");
}
}
public class Cat : Animal
{
public override void Eat()
{
Console.WriteLine("The cat is eating.");
}
}
class Program
{
static void Main(string[] args)
{
Animal animal = new Animal();
Animal dog = new Dog();
Animal cat = new Cat();
animal.Eat();
dog.Eat();
cat.Eat();
Console.ReadKey();
}
}
Kod Açıklamaları
Bu örnekte, Animal adında bir üst sınıf ve bu sınıfı inherit eden Dog ve Cat adında alt sınıflar bulunur. Animal sınıfında, Eat() adında bir metod tanımlanmıştır. Bu metod, alt sınıflar tarafından override edilebilir.
Dog ve Cat sınıfları, Animal sınıfını inherit eder ve Eat() metodunu override eder. Bu metodların içinde, sınıfların yemek yeme şekilleriyle ilgili bilgiler yazdırılır.
Main metodunda, Animal, Dog ve Cat nesneleri oluşturulur ve Eat() metoduna erişilir. Çıktı olarak, her sınıfın yemek yeme şekline göre bir yazı yazdırılır.
Bu örnekte, Animal sınıfı, alt sınıflarının uyması gereken bir davranış (Eat() metodunu implemente etmek) sağlar. Bu sayede, alt sınıfların kendilerine özgü yemek yeme şekillerini (polymorphism) sergilemeleri mümkün olur.
Interface İle Kullanımı
Aşağıdaki örnek ise interface’ler kullanarak polymorphism sağlamak için bir örnektir:
public interface IAnimal
{
void Eat();
}
public class Dog : IAnimal
{
public void Eat()
{
Console.WriteLine("The dog is eating.");
}
}
public class Cat : IAnimal
{
public void Eat()
{
Console.WriteLine("The cat is eating.");
}
}
class Program
{
static void Main(string[] args)
{
IAnimal dog = new Dog();
IAnimal cat = new Cat();
dog.Eat();
cat.Eat();
Console.ReadKey();
}
}
Kod Açıklamaları
Bu örnekte, IAnimal adında bir interface ve bu interface’i implemente eden Dog ve Cat adında sınıflar bulunur. IAnimal interface’inde, Eat() adında bir metod tanımlanmıştır. Bu metod, sınıflar tarafından implemente edilmek zorundadır.
Dog ve Cat sınıfları, IAnimal interface’ini implemente eder ve Eat() metodunu implemente eder. Bu metodların içinde, sınıfların yemek yeme şekilleriyle ilgili bilgiler yazdırılır.
Main metodunda, Dog ve Cat nesneleri oluşturulur ve IAnimal tipindeki değişkenlere atanır. Bu sayede, her iki sınıfın da Eat() metoduna erişmek mümkün olur. Çıktı olarak, her sınıfın yemek yeme şekline göre bir yazı yazdırılır.
Bu örnekte, IAnimal interface’i, implemente eden sınıfların uyması gereken bir davranış (Eat() metodunu implemente etmek) sağlar. Bu sayede, bu sınıfların kendilerine özgü yemek yeme şekillerini (polymorphism) sergilemeleri mümkün olur.
Sonuç
Polymorphism, kodun okunabilirliğini ve yeniden kullanılabilirliğini artıran önemli bir konudur. C# dilinde inheritance ve interface’ler kullanarak polymorphism sağlamak mümkündür. Kodunuzu okunaklı hale getirmek ve yeniden kullanabilirliğini artırmak için, polymorphism’i kullanmayı unutmayın.
Evet C#’ta polymorphism bu şekilde yapılmakta. Tüm C# yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.