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??
------解决方案--------------------在版本改进非常有用。它既完成新版本的功能(大多都扩展老版本功能)但又不影响老版本的使用。