父类中
public virtual void Display(){..........}
然后在子类中可以用new 和override两种
我有个疑问就是
public new void Display(){..........}
与
public void Display(){..........} 这两个啥区别 我看到结果是一样的
我问的不是override与new 而是写上new和不写的区别,VS上会出现一条波浪线,但是能运行,我想知道他们却别
关于C# 中方法重载 new 的一个问题
答案:3 悬赏:10 手机版
解决时间 2021-02-13 22:28
- 提问者网友:且恨且铭记
- 2021-02-13 11:35
最佳答案
- 五星知识达人网友:罪歌
- 2021-02-13 12:56
不写new 会提示警告,写new表示隐藏父类同名方法
全部回答
- 1楼网友:患得患失的劫
- 2021-02-13 15:06
console.writeline()方法是将要输出的字符串与换行控制字符一起输出,当次语句执行完毕时,光标会移到目前输出字符串的下一行.
至于console.write()方法,光标会停在输出字符串的最后一个字符后,不会移动到下一行。
如果代码没错的话,那就 ,abcd就都不是对的,因为每输出一行后,会换行再次输出
- 2楼网友:忘川信使
- 2021-02-13 13:27
假如父类有中虚方法V,且在方法A中调用了V,而子类方法Foverride了V,则再实际运行中,方法A中调用了V实际上调用的是子类的F,假如你子类加了new,它就只调用父类的V而不会调用F。
class Program
{
static void Main(string[] args)
{
C1 c1 = new C1();
c1.A();//父类的V
C2 c2 = new C2();
c2.A();//C2 override V
Console.ReadLine();
}
}
public class P
{
public void A()
{
V();
}
public virtual void V()
{
Console.WriteLine("父类的V");
}
}
public class C1 : P
{
public new void V()
{
//没机会输出
Console.WriteLine("C1 new V");
}
}
public class C2 : P
{
public override void V()
{
Console.WriteLine("C2 override V");
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯