C# DERS 31: VİRTUAL, OVERRİDE, NEW

using System;
class dikdortgen
{
private int en;

public int En
{
get { return en; }
set { en = value; }
}
private int boy;

public int Boy
{
get { return boy; }
set { boy = value; }
}
public void Alan(int En,int Boy)
{
Console.WriteLine(En * Boy);
}
public virtual void Yaz()//Bu metodu sanallaştırdık

//Aşağıda da aynı isimle metot kullanıcaz çünkü
{
Console.WriteLine("dikdortgen sınıfı");
}
public void Yaz2()
{
Console.WriteLine("dikdortgen sınıfı");
}
}
class Program : dikdortgen
{
public override void Yaz()//yukarıda virtual yazdığımız metodu
//override ederek burayı çalıştırıyoruz
{
Console.WriteLine("program sınıfı");
}
public new void Yaz2() //new(metot gizleme aynı isimde diğer
//classtada metot var)
{
Console.WriteLine("program sınıfı");
}
static void Main()
{
Program p = new Program();
p.Yaz(); //program classındaki Yaz çalışır
//override ettik çünkü diğerinide sanallaştırmıştık
p.Yaz2(); //Yine program classındaki Yaz2 çalışır
p.Alan(5, 6);
((dikdortgen)p).Yaz2();
//Diğer classtaki yaz2 ye erişmek istiyorsakta
//bu şekilde erişiyoruz
}
}