static void Main(string[] args)
{
/*
里氏转换
*1、子类可以赋值给父类(如果一个有一个方法需要父类作为参数,我们可以传递一个子类对象)
*2、如果父类中装的是子类对象,则可以将这个父类强转为子类对象。
*/
Person p = new Student();//子类赋值给父类
//用is转:is是转换的意思,转换成功返回true,转换失败返回flase
//if (p is Student)
//{
// ((Student)p).StudentSayHello();//父类强转为子类对象
//}
//else
//{
// Console.WriteLine("转换失败");
//}
//Console.ReadKey();
//用as转:as转换成功返回对应的对象,转换失败返回null
Student s = p as Student;
s.StudentSayHello();
Console.ReadKey();
}
public class Person
{
public void PersonSayHello()
{
Console.WriteLine("我是人类");
}
}
public class Student : Person
{
public void StudentSayHello()
{
Console.WriteLine("我是学生");
}
}
}
}