尼娅和大家 2021-10-03 03:35 采纳率: 0%
浏览 21

c#为什么子类使用从父类继承的方法时,方法内部访问的是父类的成员


class A
{
     public int i=1;
     public void Fun1()
     {
          Console.Writeline("A");
     }
     public void Fun2()
     {
          Console.Writeline(this.toString());
          Console.Writeline("i="+this.i);
          this.Fun1();
     }
}

class B:A
{
     public new int i=2;
     public void Fun1()
     {
           Console.Writeline("B");
     }
}

class Test
{
     static void Main()
     {
          B b=new B();
          b.Fun2();
     }
}

输出结果:
B
i=1
A
为什么Fun2中this指向B但使用的成员却是A的成员

  • 写回答

1条回答 默认 最新

  • 关注

    因为类B继承父类的的公有方法,又没有重写fun2,自然调用父类的方法了。

    评论

报告相同问题?

问题事件

  • 修改了问题 10月3日
  • 修改了问题 10月3日
  • 修改了问题 10月3日
  • 创建了问题 10月3日

悬赏问题

  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题