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

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

  • 相关阅读:
    遇到的StageFright问题 一 音视频因ALSA不同步
    stagefright
    细数开源历史上的九个重大事件
    AOP concepts (from spring.net document)
    javascript ECMA262概述
    Spring.net配置相关
    NUnit2.5 测试类几个方法
    Bill Gates 哈佛大学演讲 Never Surrend to Complexity
    iis6.0支持GZIP的详细设置方法
    Hessian是一个轻量级的remoting onhttp工具
  • 原文地址:https://www.cnblogs.com/xiangxiangyuan/p/1302505.html
Copyright © 2011-2022 走看看