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

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

  • 相关阅读:
    mongodb的安装与启动(centos7)
    使用tengine解决负载均衡的session问题
    nginx 负载均衡 使用ip_hash方式解决session问题 测试
    查看linux服务器状态常用命令
    swagger
    使用gtest(googletest)进行c++单元测试
    程序员的字符艺术
    使用gdb调试c++程序
    使用c++开发跨平台的程序
    Orleans之EventSourcing
  • 原文地址:https://www.cnblogs.com/xiangxiangyuan/p/1302505.html
Copyright © 2011-2022 走看看