C# 多态性的问题

假设抽象类
public abstract class A
{public abstract List<book> ReadDate();}
类B继承自A,
public class B:A
{
public override List<book> ReadDate()
{....}
}
这样写,继承类中readdate()方法,返回的类型就只能是list<book>,如果要返回不同类型的对象,该怎么办?

第1个回答  2013-06-26
public abstract class A
{public abstract List<Object> ReadDate();}
类B继承自A,
public class B:A
{
public override List<Object> ReadDate()
{....}
}

这样的话, 返回的前提是 必须返回 一个 List 集合 ,但 返回的集合可以使 多种 类型。
比如你要返回 的可能是 List<book> 也可能是 List<pen> 就可以实现了。
但 接收的时候 进行类型的 强行转换。
第2个回答  2013-06-26
采用覆盖的方法,把原来的ReadDate()覆盖掉。用另一个关键字over开头的一下想不起来了。呵呵.....
你可以试试
第3个回答  2013-06-26
你定义的返回值类型为List<book>,那就只能返回List<book>类型的数据,要想返回不同的类型,就只能改那个返回值类型了!
第4个回答  2013-06-26
如果你把返回类型改了,那就不叫方法的重写了。你得始终明白好这个原则。
相似回答
大家正在搜