using System;
public class Program
{
public static void Main()
Console.WriteLine("Hello World");
var d = new D();
d.MMMM();
var i = d as I;
d.MMMM2();
// THIS WILL NOT COMPILE
// d.MMMM3();
var dddd = d as II;
// THIS WILL COMPILE
dddd.MMMM3();
Console.WriteLine("Hello World2");
}
public abstract class C {
public void MMMM() {
public interface I{
void MMMM();
public interface II{
void MMMM2();
void MMMM3();
public class D : C, I,II
public void MMMM2(){}
void II.MMMM3(){}