Virtual Methods

Inheritanca yaptığımız bir yerde genel bir methodumuz var ve bu method birçok ortamda aynı ise bunu ebebeyn classta yazarız
Ama bazen değişkenlik gösteriyorsa method’a virtual ifadesini verip o kodu ezebiliriz
Yani virtual methodları override ederek baştan yazabiliriz
Bu tür ebebeyn classımızdaki methodları kullandığımız durumlarda Inheritanca’dan yararlanırız yani interface’den yararlanamayız

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

namespace VirtualMethods
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
             * Inheritanca yaptığımız bir yerde genel bir methodumuz var ve bu method birçok ortamda aynı ise bunu ebebeyn classta yazarız
             * Ama bazen değişkenlik gösteriyorsa method'a virtual ifadesini verip o kodu ezebiliriz
             * Yani virtual methodları override ederek baştan yazabiliriz
             * Bu tür ebebeyn classımızdaki methodları kullandığımız durumlarda Inheritanca'dan yararlanırız yani interface'den yararlanamayız**/

            SqlServer sqlServer = new SqlServer();
            sqlServer.Add();
            MySQL mySQL = new MySQL();
            mySQL.Add();

            Console.ReadLine();
        }
    }

    class Database
    {
        public virtual void Add()
        {
            Console.WriteLine("Added by default");  //Default ekleme işlemi yapıldı
        } 

        public virtual void Delete()
        {
            Console.WriteLine("Deleted by default");
        }
    }

    class SqlServer : Database
    {
        public override void Add()
        {
            Console.WriteLine("Added by Sql Code");
            //base.Add();
        }
    }

    class MySQL : Database
    {

    }
}

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