日期:2014-05-19  浏览次数:21003 次

如何使函数返回的为一个动态类型,除了用object
比如我有三个类
Class   A
{}

Class   B:A
{}

Class   C:A
{}

我想在A里面写一个静态方法。B,C去继承它。这个方法如果B继承就返回B,A继承就返回A。函数体基本一样,假设B调用,那么这个函数可能如下
public   static   B   function   (int   i)

    B   a=(B)session.查询方法( "from   B   where   B.Id= ' "+i+ " ' ")..;
    return   a;  
  }
若C调用,则函数可能如下:
public   static   C   function   (int   i)
{
      C   a=(C)session.查询方法( "from   C   where   C.Id= ' "+i+ " ' ")..;
      return   a;
}  


------解决方案--------------------
可以用泛型

参考一下这里 http://www.cnblogs.com/yyw84/archive/2006/10/27/542328.html

------解决方案--------------------
你可以增加多一层,为你的抽象类定义一个默认的类,实现所有方法的默认实现。
所有的方法区继承这个默认的类就行了,需要重写的才重写
100个表,想实现100个不同的功能,当然要写100个实现的啦
如果都有默认的实现方法,可以按照上面所说