日期:2014-05-20  浏览次数:20837 次

C#:类,抽象,虚拟,重载。。。。。。
假设:

基类:ClassA
public   virtual/abstract   int   fun(int   x)   {   return   1;   }

继承:ClassA1   :   ClassA
public   overirde/new   int   fun(string   x)   {   return   1;   }

上面的可以通过,标准的继承然后覆盖/实现。

问题是,如何将返回类型也改了?例如:
public   string   fun(string   x)   {   reutrn   "x ";   }

不知道可以么?好像不行吧?

------解决方案--------------------
不是好像

是不行!!
------解决方案--------------------
你自己实验一下不久知道了么?
------解决方案--------------------
to public string fun(string x) { reutrn "x "; }

要看你改在什么地方,如果是改在ClassA1中就没有问题,就相当于是一个函数重载,
如果是改在ClassA中就不行了,会提示你不能override,因为基类中没有相应的被virtual修饰过的fun函数
------解决方案--------------------
up
------解决方案--------------------
public class baseTestClass
{
public virtual int fun(int x){return 1;}
}

public class exTestClass:baseTestClass
{
public new string fun(int x){return "x ";}
}

------解决方案--------------------
... 改返回类型不是变成多态了么 0 0??
------解决方案--------------------
在版本改进非常有用。它既完成新版本的功能(大多都扩展老版本功能)但又不影响老版本的使用。