请用OOP继承来纠正我

时间:2017-01-12 07:00:41

标签: c# oop

我认为它会调用派生类函数,因为类会重视它自己的函数,但它调用基类函数请纠正我...

class Baseclass
{
  public void fun()
  {
    Console.Write("Base class" + " ");
  }
}
class Derived1 : Baseclass
{
  new void fun()
  {
    Console.Write("Derived1 class" + " ");
  }
}
class Derived2 : Derived1
{
  new void fun()
  {
    Console.Write("Derived2 class" + " ");
  }
}
class test
{
  static void Main(string[] args)
  {
    Derived2 d = new Derived2();
    d.fun(); 
  }
}

1 个答案:

答案 0 :(得分:1)

调用基类方法是因为只有基类方法可访问

为什么其他方法无法访问?我们来看看Derived2中的方法:

new void fun()
{
  Console.Write("Derived2 class" + " ");
}

它的访问修饰符是什么?无,因此默认为private。这意味着您无法从test class!

访问此方法

要使其正常工作,只需添加public修饰符:

new public void fun()
{
  Console.Write("Derived2 class" + " ");
}