读书人

C#类抽象虚拟重载。解决办法

发布时间: 2012-01-07 21:41:55 作者: rapoo

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

读书人网 >C#

热点推荐