首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2012-01-07 
C#:类,抽象,虚拟,重载。。。。。。假设:基类:ClassApublicvirtual/abstractintfun(intx){return1}继承:ClassA1:

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

热点排行