里氏转换
定义:
1.子类可以赋值给父类。
2.如果父类中装的是子类对象,那么可以将这个父类强转为子类对象。
//1.子类可以赋值给父类;如果有一个地方需要一个父类作为参数,我们可以给一个子类代替
Student S = new Student();
Person P = S;
//2.如果父类中装的是子类对象,那么可以将这个父类强转为子类对象
Student SS = (Student)P;//将P转化为Student对象
SS.StudentSayhello();
//Teacher T = (Teacher)P;//这样是不行的,因为P中不包含Teacher类的对象
//T.TeacherSayhello();
is和as的用法:
is:表示类型转换,如果转换成功返回true,失败则返回false
if (P is Student)
{
Student T = (Student)P;
T.StudentSayhello();
}
else
{
Console.WriteLine("转换失败");
}
as:表示类型转换,如果能够转换则返回对应的对象,否则返回一个null
Student SS = P as Student;//转换成功
Teacher T = P as Teacher;//转换失败
ArrayList集合
ArrayList List = new ArrayList();
List