zoukankan      html  css  js  c++  java
  • 属性在继承中的应用


    {
            public class Employee1
            {
                private string name;
                public string Name
                {
                    get { return name; }
                    set { name = value; }
                }
            }

        public class Manager : Employee1
            {
                private string name;

                // Notice the use of the new modifier:
                public new string Name
                {
                    get { return name; }
                    set { name = value + ", Manager"; }
                }
            }

            class TestHiding
            {
                static void Main()
                {
                    Manager m1 = new Manager();

                    // Derived class property.
                    m1.Name = "John";

                    // Base class property.
                    ((Employee1)m1).Name = "Mary";//将子类的引用转换成父类的引用此时调用的是父类的set属性

                    System.Console.WriteLine("Name in the derived class is: {0}", m1.Name);
                    System.Console.WriteLine("Name in the base class is: {0}", ((Employee1)m1).Name);//此时调用的是父类的get属性
                }
            }
    }

    当派生类的属性隐藏拉基类中的属性在子类中用new修饰符做说明;代码如下

                public new string Name
                {
                    get { return name; }
                    set { name = value + ", Manager"; }
                }

    注:父类和子类的中的字段可以是不同名称

  • 相关阅读:
    【转】linux下passwd命令设置修改用户密码
    【转】Linux账号管理之useradd
    shell script练习:利用日期进行文件的创建
    [转]linux之pr命令
    [转]linux之patch命令
    [转]linux之diff 命令
    [转]linux之awk命令
    【转】Linux之printf命令
    Linux egrep命令
    [转]sed常用命令总结
  • 原文地址:https://www.cnblogs.com/xiangxiangyuan/p/1302505.html
Copyright © 2011-2022 走看看