一个类可以有多个接口,声明了接口变量并且指向一个对象的时候,这个变量只能使用该接口内的方法和属性,而不能访问其他接口中的方法和属性。
QI 要解决的就是一个类实现多个接口的问题。
interface IFavoriteFood
{
void Food();
}
interface IVoice
{
void Voice();
}
class Cat : IFavoriteFood, IVoice
{
public void Food()
{
Console.WriteLine("我喜欢的食物是老鼠.");
}
public void Voice()
{
Console.WriteLine("喵,喵,喵...");
}
}
class Program
{
static void Main(string[] args)
{
IVoice pVoice = new Cat();
pVoice.Voice();
// 只能调用 IVoice 中定义的方法
// pVoice.Food();
// 这个就会报错,因为 IVoice 接口中没有这个方法的定义
IFavoriteFood pFavoriteFood = pVoice as IFavoriteFood;
// QI实现
pFavoriteFood.Food();
// 只能调用 IFavoriteFood 定义的方法
Console.ReadLine();
}
}