代码之家  ›  专栏  ›  技术社区  ›  Zo Has

是否与子类一起填充基类?

  •  0
  • Zo Has  · 技术社区  · 14 年前

    我需要在现有类中添加一些新字段及其所有现有字段/属性。

    所以每当派生类被dal填充时,我也将填充基类的所有字段。目前,我是这样做的,但不确定这是正确的方式?请给我举个例子。另外,我不确定每次初始化派生类时,基类对象是否是新的?

    public class Employee
        {
            private int _id;
            private int _name;
            public int ID
            { 
                set { _id=value;}
                get { return _id;}
            }
            public int Name
            { 
                set { _name=value;}
                get { return _name;}
            }
            protected void SetName ()
            {
                _name=value;
            }
            protected void SetID()
            {
                _id=value;
            }
        }
    public class EmployeeWithDepartmentName:Employee
            {
               private string _deptName;
               public string DeptName 
                {
                    set { _deptName=value; }
                }
                public setBaseEmpName()
                {
                   base.SetName();
                }
            public setBaseID()
                {
                   base.SetID();
                }
            }
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   jgauffin    14 年前

    基类中的所有内容都可以从派生类中自动访问,而无需做任何操作,只需直接使用属性/方法名。

    public class MyBase
    {
        public string UserName {get;set;}
    }
    
    public class MyClass : MyBase
    {
      public void DoSomething()
      {
         Console.WriteLine("UserName: {0}", UserName);
         UserName = "Anders";
      }
    }
    

    您也可以这样做:

    MyClass myClass = new MyClass();
    myClass.UserName = "Rune";
    

    受保护意味着只有派生类才能访问属性/方法。公共意味着每个人都可以访问属性/方法。

    另外,我不确定每次初始化派生类时,基类对象是否是新的?

    它不是两个对象,而是从两个不同的类(继承就是这样工作的)创建的一个对象。

    阅读这篇关于继承的文章: http://www.csharp-station.com/Tutorials/lesson08.aspx