示例代码:
using System;
public interface IAnimal
{
void Walk();
}
public class Cat : IAnimal
{
public void Walk()
{
Console.WriteLine("Cat is walking");
}
}
public sealed class Program
{
public static void Main()
{
// type of cat is Cat, call Cat's Walk method
Cat cat = new Cat();
cat.Walk();
// type of animal is IAnimal, call IAnimal's Walk
IAnimal animal = (IAnimal) cat;
animal.Walk();
}
}
实现接口方法时,若没有显式加virtual 关键字修饰,则编译器自动添加关键字virtual 和sealed 修饰。若显式添加了virtual 关键字,则其派生类可以重写该方法。
以上示例中,需要明确,Cat类中实现的Walk方法既是自己的一个公共方法,也是实现IAnimal接口的方法。作为其自有的公共方法,这允许以下代码调用该方法