日期:2014-05-18  浏览次数:20768 次

基类和派生类的一个题目,我是不是做错了???

1.假设系统用户有财务人员与客户人员两种,且每个系统用户都可以查询单据,但财务人员与客户人员之间的查询并不相同,请以系统用户为基类,财务人员与客服人员为派生类,用C#语言展示如何使用多态性来处理查询单据


using   System;
class   User   //定义系统用户类
{
      protected   int   OrderID;//单据ID
      public   User(int   iOrderID){
            OrderID   =   iOrderID;
      }    
      public   Query(){
Console.WriteLine( "查询结果: "+OrderID)};
}

class   FinUser:User   //定义财务人员类
{
      public   FinUser(int   iOrderID,int   iUserType):base(int   iOrderID)
      base.Query();
}
class   CusUser:User   //定义客服人员类
{
      int   UserType;   //用户类型
      public   FinUser(int   iOrderID,int   iUserType):base(int   iOrderID)
      base.Query();
}

------解决方案--------------------
using System;
class User //定义系统用户类
{
protected int OrderID;//单据ID
public User(int iOrderID){
OrderID = iOrderID;
}
public virtual void Query(){//基类中应该是虚方法
Console.WriteLine( "基类查询结果: "+OrderID)};
}

class FinUser:User //定义财务人员类
{
public override void Query()//子类中重写基类的方法
{
Console.WriteLine( "财务人员查询结果: "+OrderID)};
}
}
class CusUser:User //定义客户人员类
{
int UserType; //用户类型
public override void Query()//子类中重写基类的方法
{
Console.WriteLine( "客户人员查询结果: "+OrderID)};
}
}