23 Mayıs 2015

c# Polymorphism

using System;

namespace Polymorphism
{
    /*
     Polymorphism(Çok biçimlilik) demek bir x Değişkeninin x altclassına da referans olabilmesi demektir.
     * Bu metodda dikkat edersek Varlik clasımız iki farklı class için bir tabandır.
     * Yani mal clasımız Stock classının alt classıdır diyebiliriz.
     */
    public class Varlik
    {
        public string Ad;
    }
 
    public class Stock : Varlik
    {
        public long Hisse;
    }
  
    public class House : Varlik
    {
        public decimal Degeri;
    }
    class Program
    {
        //Burada tanımlanan metodumuz dikkat ederseniz Varlik clası için yazılmıştır.
        public static void Display(Varlik asset)
        {
            System.Console.WriteLine(asset.Ad);
        }
        static void Main(string[] args)
        {
            Stock msft = new Stock { Ad = "MSFT", Hisse = 1000 };
            House mansion = new House { Ad = "Mansion", Degeri = 25000 };
            //Dikkat ederseniz burada Varlik classı için kullanmadık.
            //Çünkü polymorphism özelliğinde dolayı
            //Fonksiyonumuzun tanımına uyan bir alt classı kullanabiliriz.
            Display(msft);
            Display(mansion);
            Console.ReadKey();
        }
    }
}