using System;
public class Program
{
public static void Main()
var b = new B();
var bCastedToA = (A) new B();
b.Write();
bCastedToA.Write();
Console.WriteLine();
b.WriteVirtual();
bCastedToA.WriteVirtual();
}
class A {
public void Write(){
Console.WriteLine("a");
public virtual void WriteVirtual(){
class B : A {
Console.WriteLine("b");
public override void WriteVirtual(){
Console.WriteLine("overriden b");