static void Main(string[] args) { // örneğin 2 tane class 1 tane de kalıtım alacağımız class olsun, classlardan birisi mysql, diğeri sqlserver // kalıtım class'ı da Database işlemlerini yapacağımız class. // database class'ındaki add metotu mysql'de değişime uğramak zorunda çünkü o şekilde çalışamaz // bunu için kalıtım aldığımız classtaki metotu virtual tanımlayıp, değiştireceğimiz yerde override ile ezip o class için nasıl çalışacağını // tekrar yazabiliriz. MySql mysql = new MySql(); mysql.Add(); // override ile ezip o metotun yeni çalışma biçimini verdik. SqlServer sqlserver = new SqlServer(); sqlserver.Add(); // sqlserver için aynı şekilde çalışmaya devam etti. // kalıtım olacak sınıftaki, daha sonradan başka yerde değişecebilecek metotları virtual olarak tanımlamak mantıklı bi seçenek. // interface'de böyle bi işlem yapamayız, interface ile inheritance arasındaki farklardan biri. }