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