您的位置:首页 > 编程语言 > C#

c# override new

2011-06-02 15:13 134 查看
此文为转载,很清楚地代码,最后总结的很好,恩

using System;

using System.Collections.Generic;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

baseClass bc;

class1 ct1 = new class1();

class2 ct2 = new class2();

ct1.prinf();

bc = ct1;

bc.prinf();

Console.WriteLine("---------------------");

ct2.prinf();

bc = ct2;

bc.prinf();

}

}

public class baseClass

{

private int index = 0;

public virtual void prinf()

{

Console.WriteLine("这是基类虚方法" + index.ToString());

}

}

public class class1 : baseClass

{

private int index = 1;

public override void prinf()

{

Console.WriteLine("这是子类新的方法" + index.ToString());

}

}

public class class2 : baseClass

{

private int index = 2;

public new void prinf()

{

Console.WriteLine("这是子类新的方法" + index.ToString());

}

}

}

运行结果:
这是子类新的方法1
这是子类新的方法1
---------------------
这是子类新的方法2
这是基类虚方法0
如上
使用override重写printf方法,通过父类引用一样只能看到重写后的方法;
如果使用new隐藏printf方法,父类子类引用各自对应方法;
override重写虚方法,那么就只剩下重写以后的方法;
new隐藏基类的方法,那么基类的方法和当前类的方法同时存在只是被隐藏了;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: