如何理解c#中的隐藏方法? 书上说:一个父类a和子类b都有相同方法x(),类 b 的x()方法会隐藏父类方法,谁能举个例子说明如何隐藏啊? 另外:虚方法我已经理解了!父类的中方法声明为virtual子类的中与父类同名方法声明为override 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 class 父类{ public void 方法1() { Console.WriteLine("父类方法") }}class 子类:父类{ public void 方法1() { Console.WriteLine("子类方法") }}这里如果声明子类的引用指向子类实例,就会执行子类方法class Test{ static void Main() { 子类 obj=new 子类(); obj.方法1(); }}上面输出"子类方法",这里是隐藏了父类的同名方法class Test{ static void Main() { 父类 obj=new 子类(); obj.方法1(); }}上面会输出"父类方法",没有重写父类方法 但是如果这样class 父类{ public virtual void 方法1() { Console.WriteLine("父类方法") }}class 子类:父类{ public override void 方法1() { Console.WriteLine("子类方法") }}这里如果声明子类的引用指向子类实例,就会执行子类方法class Test{ static void Main() { 子类 obj=new 子类(); obj.方法1(); }}上面输出"子类方法",这里是隐藏了父类的同名方法---------------------------在父类方法加了virtual 在子类方法加了override也能体现上面的特性啊!?也是隐藏了父类的同名方法 虚方法体现面向对象的多态性,class 父类{ public virtual void 方法1() { Console.WriteLine("父类方法") }}class 子类:父类{ public override void 方法1() { Console.WriteLine("子类方法") }}这里如果声明子类的引用指向子类实例,就会执行子类方法class Test{ static void Main() { 父类 obj=new 子类(); obj.方法1(); }}这时候虽然obj是父类类型,但是会执行子类方法,但是如果不写virtual 和 override 就会执行父类方法,没有重写,所以叫隐藏 C# 操作Word的问题 c#如何在打包中让程序在安装时打开一个网页 连接excel的时候提示:不能更新,数据库或对象为只读,为什么啊? C#值不在预期范围内 C#如何读取到其它网站的html代码?? 如何通过下拉菜单查询数据? 急问:关于文件的读取的问题........... datagridview 的事件问题 怎么定义一个不固定长度的byte数组,在c#里面(谢谢) C#问题:怎样在TextBox中敲回车后,激发指定的按扭Button事件?? 就是在一张地图上(比如北京地图)上面画房子?? C# 数据结构算法
{
public void 方法1()
{
Console.WriteLine("父类方法")
}
}
class 子类:父类
{
public void 方法1()
{
Console.WriteLine("子类方法")
}
}
这里如果声明子类的引用指向子类实例,就会执行子类方法
class Test
{
static void Main()
{
子类 obj=new 子类();
obj.方法1();
}
}
上面输出"子类方法",这里是隐藏了父类的同名方法
class Test
{
static void Main()
{
父类 obj=new 子类();
obj.方法1();
}
}
上面会输出"父类方法",没有重写父类方法
class 父类
{
public virtual void 方法1()
{
Console.WriteLine("父类方法")
}
}
class 子类:父类
{
public override void 方法1()
{
Console.WriteLine("子类方法")
}
}这里如果声明子类的引用指向子类实例,就会执行子类方法
class Test
{
static void Main()
{
子类 obj=new 子类();
obj.方法1();
}
}
上面输出"子类方法",这里是隐藏了父类的同名方法
---------------------------
在父类方法加了virtual
在子类方法加了override
也能体现上面的特性啊!?也是隐藏了父类的同名方法
class 父类
{
public virtual void 方法1()
{
Console.WriteLine("父类方法")
}
}
class 子类:父类
{
public override void 方法1()
{
Console.WriteLine("子类方法")
}
}这里如果声明子类的引用指向子类实例,就会执行子类方法
class Test
{
static void Main()
{
父类 obj=new 子类();
obj.方法1();
}
}
这时候虽然obj是父类类型,但是会执行子类方法,
但是如果不写virtual 和 override 就会执行父类方法,没有重写,所以叫隐藏