C#继承讲解以及对象的创建

namespace Assets
{

    class Student:Person  //子类Person继承了父类
    {
        static void Main(string[] args)
        {
            Person p1 = new Person();    // new Person();才是创建新对象
             //父类型引用 指向 父类型对象
            //现象:只能访问父类成员

            Student s1 = new Student();
            //子类型引用 指向 子类型对象
            //现象:能够访问父类成员/也可以访问子类成员

            Person p2 = new Student();
            //父类型引用 指向 子类型对象
            //现象:只能够访问父类成员(受类型制约),但是p2中是有Student类型的成员的(受类型制约无法引用)

            //如果需要父类型引用访问子类型成员,需要将引用的数据类型进行转换
            Student s4 = p2 as Student;
            //as转换失败的话则结果为null

            //Student s2 = new Person();
            //不存在子类型引用指向父类型对象,因为s2可以引用Stundent类中的成员,但这些成员Person类中可能不存在。

            //以下为实例讲解
            //以此为例:  Person p2 = new Student();
            //可以调用什么成员取决于引用的类型(即p2的类型-Person),需要看Persson类中有什么成员,就可以引用这些成员(可以引用但不代表能引用成功)
            //而能否引用成功该成员则取决于后面创建的对象类型("new 类名()")是否有该成员,即Stundent类中有这种成员就可以引用成功,没有的话将会引用失败
            //成员指的就是类中定义的变量、方法等;
    
        }
    }
}

  

原文地址:https://www.cnblogs.com/duoyaduoa/p/12988376.html