using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;class Employee
{
    protected string strName;
    protected string strSex;
    protected string strEmail;
    protected string strDept;    public Employee(string name, string sex, string email, string dept)
    {
        strName = name;
        strSex = sex;
        strEmail = email;
        strDept = dept;
    }    public string EmployeeName
    {
        get
        {
            return strName;
        }
        set
        {
            strName = value;
        }
    }    public string Sex
    {
        get
        {
            return strSex;
        }
        set
        {
            strSex = value;
        }
    }    public string Email
    {
        get
        {
            return strEmail;
        }
        set
        {
            strEmail = value;
        }
    }    public string Department
    {
        get
        {
            return strDept;
        }
        set
        {
            strDept = value;        }
    }    virtual public String TellInfo()
    {
        String str = "姓名:" + strName + "性别:" + strSex + "部门:" + strDept + "Email:" + strEmail;
        return str;
    }}class Manager : Employee
{
    private string strLevel;
    public Manager(string name, string sex, string email, string dept, string level)
        : base(name, sex, email, dept)
    {
        strLevel = level;
    }
    public string Level
    {
        get
        {
            return strLevel;
        }
        set
        {
            strLevel = value;
        }
    }    public override String TellInfo()
    {
        String str = base.TellInfo() + "岗位级别:" + strLevel;
        return str;
    }
}
public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Employee[] emps = new Employee[3];
        emps[0] = new Employee("张海", "男", "[email protected]", "市场部");
        emps[1] = new Employee("李楠", "女", "[email protected]", "总经理办公室");
        emps[2] = new Manager("王勇", "男", "[email protected]", "开发部", "高级");        for (int i = 0; i < 3; i++)
        {
            Response.Write("以下是我的信息:<br>");
            Response.Write(emps[i].TellInfo());
            Response.Write("<br>");
        }
    }
}程序倒数第9行 代码
emps[2] = new Manager("王勇", "男", "[email protected]", "开发部", "高级");
有些不太明白 上面已经有语句Employee[] emps = new Employee[3]; 表明 emps[0], emps[1], emps[2]都是Employee类的对象 Employee类只有strName strSex strEmail strDept这4个字段 并没有strLevel字段 程序倒数第9行用new Manager("王勇", "男", "[email protected]", "开发部", "高级");定义的是Manage类的对象怎么能附给Employee对象呢 我觉得程序应该报错 可运行却通过了 不知道为什么?

解决方案 »

  1.   

    public Manager(string name, string sex, string email, string dept, string level)
     emps[2] = new Manager("王勇", "男", "[email protected]", "开发部", "高级");
    我觉得对应得很好啊!!!!
      

  2.   

    emps[2]应该是Employee 类的对象 而Employee 类的对象只有4个字段strName strSex strEmail strDept Manager类有5个字段 比Employee 类还多了个strLevel字段 怎么把Manager类的对象父执给Employee 类的对象呢
      

  3.   

    public Manager(string name, string sex, string email, string dept, string level)
            : base(name, sex, email, dept)
    这句起了作用
      

  4.   

    class Manager : Employee
    {
        private string strLevel;
        public Manager(string name, string sex, string email, string dept, string level)看看这几句,呵呵
    他们是父子关系,
    去翻番书,把类的继承好好看看吧