乐趣区

关于c#:C隐藏基类成员base用法

代码如下:

class Program

{
    public class Student// 定义一个学生类,其中字段有姓名、年龄、学号
    {
        private string Name;
        private string Age;
        private int Id;
        public Student(string name,string age,int id)// 创立学生类的构造函数
        {
            Name = name;
            Age = age;
            Id = id;
        }
        public void sc()// 定义一个输入办法 sc, 别离输入姓名,年龄,学号信息
        {Console.WriteLine("姓名:{0}", Name);
            Console.WriteLine("年龄:{0}", Age);
            Console.WriteLine("学号:{0}", Id);
        }
    }
    public class e : Student// 定义一个新类 e 来根底学生类,换个说法就是 e 是学生类的子类
    {
        private string department;// 定义两个字段业余和性别
        private string sex;
        public e(string name, string age, int id, string d,string s)
            : base(name, age, id)
        {
            department = d;
            sex = s;
        }
        new public void sc()// 应用 new 修饰符清晰的表明了派生类暗藏了基类,如果不加 new,编译会有正告
        {base.sc();// 调用基类的构造函数
            Console.WriteLine("业余:{0}", department);
            Console.WriteLine("性别:{0}", sex);
        }
    }
    static void Main(string[] args)
    {e s1 = new e("张三", "22", 12, "软件工程", "男");// 实例化派生类对象为 s1,写入相应信息。s1.sc();}
}

编译后果如下:

base 是指基类的对象, 其特点如下。

(1)应用 base 关键字可拜访基类的字段和办法。
(2)应用 base 关键字可调用基类的构造函数。派生类继承基类中除了构造函数, 析构函数之外的所有成员, 然而, 派生类依然能够调用间接基类的构造函数。
(3)base 不能蕴含在静态方法和动态构造函数中, 也不能通过 base 拜访其余动态
(4) 只能在派生类内应用 base 拜访基类被暗藏的成员。在派生类之外, 不能通过派生类的对象拜访被暗藏的成员。

退出移动版