Clear        


                
                    namespace _08_InterfaceSegregation._1_Arac
{
    public class AracDemo
    {
        public static void Calistir()
        {
            Araba araba = new Araba() // araba referans değişkeni üzerinden Araba tipinde obje oluşturulması (initialization)
            {
                Marka = "Mini",
                Model = "Cooper S",
                TekerlekSayisi = 4,
                BeygirGucu = 184,
                KasaTipi = KasaTipiEnum.Hatchback,
                YakitTipi = YakitTipiEnum.Elektrik,
                DireksiyonSoldaMi = true,
                MotorHacmi = 1600
            };

            Motorsiklet motorsiklet = new Motorsiklet // motorsiklet referans değişkeni üzerinden Motorsiklet tipinde obje oluşturulması (initialization)
            {
                TekerlekSayisi = 2,
                YakitTipi = YakitTipiEnum.Benzin,
                MotorHacmi = 250,
                BeygirGucu = 70,
                Marka = "Yamaha",
                Model = "Racing Z70"
            };



            //IArac kamyon = new Kamyon(); // kamyon referans değişkeni üzerinden Kamyon tipinde obje oluşturulması (initialization)
            //kamyon.DireksiyonSoldaMi = true; // DireksiyonSoldaMi özelliğine IArac interface'i içinde olmadığından ulaşılamaz çünkü kamyon değişkeninin tipi IArac

            IArac kamyon = new Kamyon() // obje oluşturulurken Kamyon tipi üzerinden DireksiyonSoldaMi özelliğine ulaşılabilir
            {
                DireksiyonSoldaMi = true,
                Marka = "Mercedes",
                Model = "Axor",
                BeygirGucu = 200,
                YakitTipi = YakitTipiEnum.Dizel,
                TekerlekSayisi = 6,
                MotorHacmi = 3500
            };



            // konsola araç bilgilerini yazdırma
            Console.WriteLine("*** ARABA ***");
            Console.WriteLine(araba.AracBilgileriniGetir("\n")); // bir alt satırdan devam etmesi için satirSonu parametresi \n gönderildi

            Console.WriteLine("*** MOTORSİKLET ***");
            Console.WriteLine(motorsiklet.AracBilgileriniGetir("\n"));

            Console.WriteLine("*** KAMYON ***");
            Console.WriteLine(kamyon.AracBilgileriniGetir("\n"));
        }
    }
}