从派生类访问基类的非私有成员解决方案

从派生类访问基类的非私有成员
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 实力5_2
{
    class Program
    {
       public static void Main()
        {
            Student student = new Student("大雄", 12, "一中");
            Console.WriteLine(student.Name);
            Console.WriteLine(student.Age);
            Console.WriteLine(student.School);
        }
    }
    class Person
    {
        public string Name;
        public int Age;
        public Person(string name, int age)
        {
            Name = name;
            Age = age;
            Console.WriteLine("{0},{1}", Name, Age);
        }
    }
            class Student:Person
            {
                public string School;
       public Student(string name,int age,string school):base(name,age)
            {
                School=school;
                Console.WriteLine("{0},{1},{2}",Name,Age,School);
            }
    }
}

------解决思路----------------------
程序是从main开始执行的。这个你可以单步调试查看。程序在执行派生类的构造函数时,先执行父类的带有想同参数的构造函数,父类若还有基类,则先执行基类的构造函数,因为你在person类的构造函数中添加了输出,所以才会有这样的结果。
------解决思路----------------------
派生类在实例化的时候会先调用父类无参的构造函数(默认的情况下)

public Student(string name,int age,string school):base(name,age)

这里你指定的是调用父类的public Person(string name, int age)这个构造函数。。

执行顺数是

1.父类构造函数
2.派生类的构造函数
3.你之后的类容

这些都很基本