A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑朝明 中级黑马   /  2013-1-23 10:27  /  1552 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

using System;
class Employee//员工类
{
    protected string _name;//员工姓名
    public Employee() { }//构造函数
    public Employee(string name)//构造函数为员工姓名赋值
    {
        _name = name;
    }
    public virtual void StatWork()//开始工作的虚方法
    {
        Console.Write(_name + "开始工作:");
    }
}
class Manager:Employee//经理类
{
    public Manager(string name):base(name){}//把参数传递到基类构造函数
    public override void StatWork()//重写经理工作的方法
    {
        base.StatWork();//一般情况下使用虚函数他的子类都应该调用基类被覆盖的方法
        Console.WriteLine("给员工下达任务");
    }
}
class Secretary:Employee//秘书类
{
    public Secretary(string name) : base(name) { }
    public override void StatWork()
    {
        base.StatWork();
        Console.WriteLine("协助经理");
    }
}
class Seller : Employee
{
    public Seller(string name) : base(name) { }
    public override void StatWork()
    {
        base.StatWork();
        Console.WriteLine("销售产品");
    }
}

class Test
{
    static void Main()
    {
        Employee[] emp = new Employee[4];//定一个类数组相当于4人的公司
        emp[0] = new Manager("张三");//实例经理张三
        emp[1] = new Secretary("李四");//实例秘书李四
        emp[2] = new Seller ("王五");//实例销售王五
        emp[3] = new Seller("马六");
        Console.WriteLine("早上8点,开始工作");
        foreach (Employee e in emp)
        {
            e.StatWork();
        }
        Console.ReadKey();
    }
}

评分

参与人数 1技术分 +1 收起 理由
张文 + 1 来点注释啥的。

查看全部评分

2 个回复

倒序浏览
学写了,谢谢分享
回复 使用道具 举报
虚方法定义在除密封类外都可以,虚方法不一定必须重写,而且必须要有方法体
抽象方法只能定义在抽象类中,抽象方法不能有方法体,必须被非抽象子类重写

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马