Çok Biçimlilik Polymorphism Nedir ve Örnek

Çok Biçimlilik (Polymorphism)

Nesne tabanlı programlamanın üç temel ögesi vardır. Bunlar, çok biçimlilik, kapsülleme ve kalıtımdır. Nesne tabanlı programlamada çok biçimlilik, nesnelerin dışarıdan aynı yapıda görünmelerine rağmen içerde farklı işlem yapmalarıdır. Bu nedenle sınıflar nesnelerin içindeki farklılıklardan etkilenmeden çalışır. Çok biçimlilik aslında bir arayüz (interface) kullanarak birden fazla metodun kullanılmasını sağlar. Çok biçimliliğin amacı, genel bir sınıf belirtip aynı arayüzü kullanarak oluşabilecek karmaşıklığı azaltmaktır.

Nesne tabanlı programlama sınıflar belli bir sıraya göre tasarlanır. Başta genel bir sınıf sonra da bu sınıftan oluşmuş ve yeni elemanlar katılarak farklı özelliklere sahip yeni sınıflar vardır. Yeni oluşturulan sınıflar temel sınıfın özelliklerini taşır. Ancak oluşturulan sınıflar temel sınıfın özelliklerini taşırlarken temel sınıf türetilen sınıfın özelliklerini taşımaz. Bir örnekle açıklayacak olursak; Okullar sınıfının genel bir sınıf olduğunu düşünelim. Bu sınıfın bir elemanı olan Meslek Liseleri vardır. Okullar sınıfının özelliklerini meslek liselerine geçirebiliriz. Ama tam tersi söz konusu değildir. Çünkü her meslek lisesi bir okuldur ama her okul bir meslek lisesi değildir.

Örnek

Okul sınıfından Anadolu, MTAL ve Fen sınıfları türetilerek C# Console’da yapılan seçime göre okulun hangi tür olduğunu bulan programın kodları polymorphism mantığına göre yapılmıştır.

using System;

namespace ConsoleApplication
{
    class Okul
    {
        class Anadolu : Okul
        {
            public string okul = "Anadolu Lisesi";
        }

        class MTAL : Okul
        {
            public string okul = "Mesleki Teknik Anadolu Lisesi";
        }

        class Fen: Okul
        {
            public string okul = "Fen Lisesi";
        }

        static void Main(string[] args)
        {
            string sec;
            Console.WriteLine("1- Anadolu");
            Console.WriteLine("2- MTAL");
            Console.WriteLine("3- Fen");
            Console.Write("Seçiminiz: ");
            sec = Console.ReadLine();

            switch (sec)
            {
                case "1":
                    Anadolu A = new Anadolu();
                    Console.WriteLine(A.okul);
                    Console.ReadKey();
                    break;
                case "2":
                    MTAL M = new MTAL();
                    Console.WriteLine(M.okul);
                    Console.ReadKey();
                    break;
                case "3":
                    Fen F = new Fen();
                    Console.WriteLine(F.okul);
                    Console.ReadKey();
                    break;
                default:
                    Console.WriteLine("Yanlış seçim yaptınız.");
                    Console.ReadKey();
                    break;
            }
        }
    }
}

Programda okul seçimi için switch-case yapısı kullanılmıştır. Yapılan seçime göre program uygun satıra yönlendirerek işlem yapılmaktadır. Herhangi bir seçim işleminde o sınıfa ait bir üye değişken oluşturularak yazma işlemi bu üye değişene (A.okul, M.okul, F.okul) göre gerçekleştirilmiştir. Programın ekran görüntüsü;

çok biçimlilik polymorphism nedir

2 yorum

  1. Geri bildirim: Kapsülleme Encapsulation Nedir ve Örnek – Burak Sakallı

  2. Geri bildirim: Kalıtım (Inheritance) Nedir? – Burak Sakallı

Bir Cevap Yazın

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