求教,关于接口,类,对象的问题
//定义一个IFavoriteFood 接口
interface IFavoriteFood
{
void Food();
}
//定义一个IVoice接口
interface IVoice
{
void Voice();
}
//然后定义了一个Cat的类实现这里面的方法:
class Cat:IFavoriteFood ,IVoice
{
public void Food()
{
Console.WriteLine("我喜欢的食物是老鼠.");
}
public void Voice()
{
Console.WriteLine("喵,喵,喵...");
}
}
这个Cat类的功能就是实现两个接口的方法,猫最喜欢的事物是老鼠,而他的声音是“喵,喵,喵”。
class Program
{
static void Main(string[] args)
{
IVoice pVoice = new Cat();
pVoice.Voice();//只能调用IVoice中定义的方法
// pVoice.Food();这个就会报错,因为 IVoice 接口中没有这个方法的定义
IFavoriteFood pFavoriteFood = pVoice as IFavoriteFood;
pFavoriteFood.Food();//只能调用IFavoriteFood定义的方法
Console.ReadLine();
}
}
请教各位:
①IVoice pVoice = new Cat(); 这一句代码中pVoice是一个接口,但是Cat却是一个类,为什么接口能够被实例化为一个类呢?
②IFavoriteFood pFavoriteFood = pVoice as IFavoriteFood;这一句代码中pFavoriteFood是接口IFavoriteFood的实例,pVoice as IFavoriteFood是什么意思呢?
希望各位高手帮忙解答,谢谢了!!!