C# 中 public new 与 new public ,这是什么作用?有什么差别?
原文:http://q.cnblogs.com/q/66874/
[待解决问题] 浏览: 219次
1 //定义属性、方法 2 public new HttpResponse Response 3 { 4 get { return System.Web.HttpContext.Current.Response; } 5 } 6 7 public new void Method2() 8 { 9 Console.WriteLine("Derived - Method2"); 10 } 11 12 //定义字段、方法 13 14 new public void Invoke() { } 15 new public static int x = 100;
如此,两种语法有何差别、又有何用法?
相关讲解:
http://msdn.microsoft.com/zh-cn/library/ms173153.aspx
http://msdn.microsoft.com/zh-cn/library/435f1dw2.aspx
仍是不太理解,以前面的C#代码,谁能解答一下
所有回答(1)
0
变量上的 和方法上的 表示是相对于 继承来说的
打个比喻 有2个 类
parent(父类)
child (子类)
2个类都有一个同名变量
param
如果 父类的param变量和 子类的param变量不是同一个 那么 子类在申明的时候 就需要在前面加new 表示这个变量 不是父类的
而在变量上 new要写在前面
方法上 new卸载public 后面
然后至于用到的地方 是配合 类的多态用的
例如
Parent parent = new Parent();
Parent parent2 = new Chlid();
Child child = new Child();
这3个类 同时嗲用 param 的时候 用new和不用new 会出现区别
parent.param
parent2.paran
child.param
@Cornelius:
不是错不错的问题
new是相对于 继承 来说的
如果子类有何父类一样的方法 一般是要使用 override关键字的
代表子类 要覆盖父类的方法
相反 子类如果用new的意思是 子类有一个 和父类一样的同命方法 但是这个方法 和父类不一样
变量上 new写在public前面
方法上 new写在public 后面 ??
依你意思 new public void Invoke() { } 这么写会有语法错误?
“方法上 new写在public 后面 ” 作用是什么?,我之前没见过在方法前使用 new所以奇怪,怎么看你说的都是C#基础。