C# 里氏转换语法
里氏转换语法
子类可以赋值给父类:
//子类对象
Student stu = new Student();
//把子类赋值给父类
Person p = stu;如果一个父类装的是子类的对象,那么父类可以直接强转成子类:
//子类对象stu1
Student stu1 = new Student();
//把子类stu1赋值给父类p
Person p = stu1;
//把父类p强转成子类,上一步是强转的条件
Student stu2 = (Student)p;
//把父类p强转成子类
Student stu3 = p as Student;
//报错,父类p中装的是Student类,无法强转成Teacher类
Techer techer = (Student)p;父类数组可以装多种子类:
Person[] p = new Person[5];
p[0] = new Student();
p[1] = new Teacher();
p[2] = new Driver();
p[3] = new Programmer();
p[4] = new Saleman();//这里调用的是父类的方法,因为数组是父类类型
p[0].Eat();
//先强转成Student类
Student stu = (Student)p[0];
//先强转成Teacher类
Teacher teacher = (Teach)p[0];stu.Eat();
teacher.Eat();
还没有评论,来说两句吧...