using System;
public class Program
{
public static void Main()
var a = new A();
var b = new B();
var c = new C();
b.WriteFrom(c);
}
class A
protected internal virtual void Write()
Console.Write("A");
class B : A
public void WriteFrom(A other)
other.Write();
class C : A
protected internal override void Write()
Console.Write("C");