static void Main(string[] args)
{
Animal[] animals = { new Cat(), new Dog(), new Pig() };
for (int i = 0; i < a.Length; i++)
{
animals[i].Drink();
animals[i].Eat();
}
Console.ReadKey();
}
abstract class Animal
{
public void Eat()
{
Console.WriteLine("动物用牙齿嚼东西");
}
public void Drink()
{
Console.WriteLine("动物用舌头喝水");
}
}
class Cat : Animal
{
}
class Dog : Animal
{
}
里式转换
子类赋值给父类;父类中装子类的对象,但是不可以使用子类的成员,因此将父类转变为对象的子类对象。
关键字
is:返回bool类型,指示是否可以做这个转换;as:转换成功,则返回对象,否则返回null。
作用
子类看做父类,针对父类进行编程,写出多个子类通用的代码。
static void Main(string[] args)
{
Person person = new Student();
//if (person is Teacher)
//{
// ((Teacher)person).TeacherSayHello();
//}
//else
//{
// Console.WriteLine("转换失败");
//}
Student s = person as Student;//将person转换为student对象
if (s != null)
{
s.StudentSayHello();
}
else
{
Console.WriteLine("转换失败");
}
Console.ReadKey();
}