将对象强制转换为接口和将对象强制转换为类有什么区别,就像这个例子一样。
variant 1和variant 2有什么差别?
namespace ConsoleApplication1
{
interface IAnimal
{
string Sound();
}
class Animal : IAnimal
{
public string Sound()
{
return "Animal sound";
}
}
class Lion : Animal, IAnimal
{
public string Sound()
{
return "Roarrrrr";
}
}
class Program
{
static void Main(string[] args)
{
Lion lion = new Lion();
IAnimal animal = (Animal)lion; // variant 1
IAnimal animal2 = (IAnimal)lion; // variant 2
Console.WriteLine(animal.Sound());
}
}
}
variant 1和variant 2有什么差别?