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"; }
                }

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

  • 相关阅读:
    写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我
    WCF快速上手(二)
    Oracle递归查询
    100多行代码实现6秒完成50万条多线程并发日志文件写入
    C#写日志工具类
    WPF定时刷新UI界面
    HttpUtil工具类
    WPF GridView的列宽度设置为按比例分配
    Visifire图表
    C# BackgroundWorker 的使用、封装
  • 原文地址:https://www.cnblogs.com/xiangxiangyuan/p/1302505.html
Copyright © 2011-2022 走看看