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

override的有关问题

2012-01-14 
override的问题这种重写是修改基类的执行代码吗? [解决办法]override重写是重新实现基类的方法new 是新建

override的问题
这种重写是修改基类的执行代码吗?


[解决办法]
override重写是重新实现基类的方法
new 是新建的方法....

他们有什么区别?

。。。。 重写可以实现多态..
class A
{
public virtual void method();
}
class B:A
{
public override void method();
}

class main
{
public static void main()
{
A a=new B();
a.method();// 实际是调用B.method
}
}
[解决办法]
namespace kkun
{
class kkun
{
class MyBaseClass
{
public virtual string DoSomething()
{
return "11 ";
}

public string DoSomething2()
{
return "12 ";
}
}

class MyDerivedClass : MyBaseClass
{
public override string DoSomething()
{
return "21 ";
}
public new string DoSomething2()
{
return "22 ";
}
}
static void Main()
{
MyBaseClass aa = new MyDerivedClass();
MyBaseClass bb = new MyBaseClass();
MyDerivedClass cc=new MyDerivedClass();
System.Console.WriteLine(aa.DoSomething());//21
System.Console.WriteLine(aa.DoSomething2());//12
System.Console.WriteLine(bb.DoSomething());//11
System.Console.WriteLine(bb.DoSomething2());//12
System.Console.WriteLine(cc.DoSomething());//21
System.Console.WriteLine(cc.DoSomething2());//22
System.Console.ReadLine();
}
}

}

热点排行