C#的实例如何执行基类的方法

finder_zhang 2010-05-31 09:36:54
之前一直用C++,对C#的语法不是很熟,请朋友们多教教,谢谢了.

下面的代码,派生类的实例怎样写,可以去调用基类的方法呢?

class BaseCls
{
public void Func()
{
Console.WriteLine("Base Func");
}
}
class DivCls: BaseCls
{
public new void Func()
{
Console.WriteLine("Div Func");
}
public void RunBaseFunc()//在类里面写base可以调用基类的,但我想在类外面,用实例来调用
{
base.Func();
}
}

class MainEntry
{
static void Main(string[] args)
{
DivCls div = new DivCls();
div.Func();





下面是我在C++写的可以在派生类调用基类的代码,不知道在C#里要怎么写?

class Base1{
public:
void Func(){
cout<<"Base Func"<<endl;
}
};

class Div1 : public Base1{
public:
void Func(){
cout<<"Div Func"<<endl;
}
};

int main(int argc, char* argv[])
{
Div1 d1;
d1.Base1::Func();//可用实例调用基类的方法
...全文
268 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
spmzfz 2010-05-31
  • 打赏
  • 举报
回复
DivCls di = new DivCls();
//di.Func();
((BaseCls)di).Func();
finder_zhang 2010-05-31
  • 打赏
  • 举报
回复
谢谢楼上的各位,我其实就是想在一个派生类的实例上,可以自己去控制执行派生的Func 或 基类的 Func
虚函数的确是个好方法,不过也是对应的如果是基类就执行基类,如果对应派生类就执行派生类,没有说可以自由控制执行哪一个的 Func

回2楼,我的代码极可能并不是一个好的设计,只是为了测试一下语法的使用而已.

参考3楼的代码,我这样实现了一下.
DivCls div = new DivCls();
div.Func(); //执行派生类本身的
((BaseCls)div).Func(); //执行基类的
chzzz_feifei 2010-05-31
  • 打赏
  • 举报
回复
BaseCls bc = new DivCls();
bc.Func();
心态决定姿态 2010-05-31
  • 打赏
  • 举报
回复


class BaseCls
{
public virtual void Func()    //定义虚方法
{
Console.WriteLine("Base Func");
}
}
class DivCls : BaseCls
{
public override void Func()
{
Console.WriteLine("Div Func");
}
}

class MainEntry
{
static void Main(string[] args)
{
BaseCls dc = new DivCls();
dc.Func(); //输出Div Func

BaseCls bs = new BaseCls();
bs.Func(); //输出Base Func

}
}
fengqiao1999 2010-05-31
  • 打赏
  • 举报
回复
同上。。。。。。。
铛铛 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 criedshy 的回复:]
BaseCls b = new DivCls();

b.Func();
[/Quote]
criedshy 2010-05-31
  • 打赏
  • 举报
回复
BaseCls b = new DivCls();

b.Func();
mayonglong 2010-05-31
  • 打赏
  • 举报
回复
BaseCls div = new DivCls();
div.Func();
threenewbee 2010-05-31
  • 打赏
  • 举报
回复
DivCls div = new DivCls();
BaseCls b = (BaseCls)div as BaseCls;
b.Func();
hztltgg 2010-05-31
  • 打赏
  • 举报
回复
真不明白,为什么不基类定义虚函数,派生类却定义new函数来隐含基类
mayonglong 2010-05-31
  • 打赏
  • 举报
回复
你不是已经定义了RunBaseFunc,
base.Func();

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧