C# 里氏转换语法

古城微笑少年丶 2021-11-09 22:58 270阅读 0赞

里氏转换语法

  1. 子类可以赋值给父类:

    //子类对象
    Student stu = new Student();
    //把子类赋值给父类
    Person p = stu;

  2. 如果一个父类装的是子类的对象,那么父类可以直接强转成子类:

    //子类对象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;

  3. 父类数组可以装多种子类:

    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();

发表评论

表情:
评论列表 (有 0 条评论,270人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C#里氏转换(对象转型)

    子类可以赋值给父类:即向上转型,子类对象可以调用父类的成员,但父类对象只能调用自己的成员。 向上转型:子类对象交给父类引用,父类引用指向子类对象。 Eg:Animal

    相关 C#菜鸟之旅-----里氏替换

         这是第二次学习“里氏替换”,因为经过了小组的讨论和自己今天的研究,感觉对于这个理解更深刻了,于是在学习完之后立刻整理,希望大家可以从这篇博客中有新的收获。