如何使函数返回的为一个动态类型,除了用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个实现的啦
如果都有默认的实现方法,可以按照上面所说