Interface Reimplmentation

CSharp · Console

/Program.cs

using System;

interface IFace
{
	void Talk();
}
class Animal : IFace
{
	public void Talk()
	{
		Console.WriteLine("Oink");
	}
}
class Human : Animal, IFace
{
	public new void Talk()
	{
		Console.WriteLine("Hi");
	}
}
					
public class Program
{
	public static void Main()
	{
		var human = new Human();
		human.Talk();

		var face = (IFace)human;
		face.Talk();

		var animal = (Animal)human;
		animal.Talk();
		
		var face2 = animal;
		face2.Talk();
		
		IFace face3;
		face3 = human;
		face3.Talk();
		
		// How to get the following to oink like animal?
		face3 = animal;
		face3.Talk();
	}
}
;