Abstract Classes

Abstractlar da birer sınıftır yapısını basit manada Interface’ler ile virtual methodların birleşimi gibi düşünebiliriz
Inheritance amacıyla kullanılır
Interface’ler gibi kendi başına kullanılanmaz (nesne üretilemez)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AbstractClasses
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
             * Abstractlar da birer sınıftır yapısını basit manada Interface'ler ile virtual methodların birleşimi gibi düşünebiliriz
             * Inheritance amacıyla kullanılır
             * Interface'ler gibi kendi başına kullanılanmaz (nesne üretilemez)**/

            Database database = new Oracle();
            database.Add();
            database.Delete();   
            
            Database database2 = new SqlServer();
            database2.Add();
            database2.Delete();

            Console.ReadLine();
        }
    }

    abstract class Database
    {
        //Örneğin diyelim ki Add işlemi tüm veritabanları için aynı fakat silme işlemi herbirinde farklı olsun
        //Abstract Class'lara hem tamamlanmış methodlar hem de tamamlanmamış (sadece imza olarak ismi taşıyan) methodlar oluşturabiliyoruz
        public void Add()
        {
            Console.WriteLine("Added by default");
        }

        public abstract void Delete();
    }

    class SqlServer : Database
    {
        public override void Delete()
        {
            Console.WriteLine("Deleted by SqlServer");
        }
    }

    class Oracle : Database
    {
        public override void Delete()
        {
            Console.WriteLine("Deleted by Oracle");
        }
    }


}

Yorum bırakın

WordPress.com'da bir web sitesi veya blog oluşturun

Yukarı ↑

WordPress.com ile böyle bir site tasarlayın
Başlayın