C# 请告诉我为什么这段代码会生成输出“基类”。虽然对象是Derived2类型,而引用变量也是同一类型

C# 请告诉我为什么这段代码会生成输出“基类”。虽然对象是Derived2类型,而引用变量也是同一类型,c#,compiler-errors,output,C#,Compiler Errors,Output,因为派生方法不是公共的,所以外部类程序的唯一选择是public BaseClass.fun方法。如果你把Derived2.fun公之于众,它将为你提供你所期望的输出 默认情况下,类方法和属性/字段是私有的,除非显式设置为public、protected或internal。您应该查找访问修饰符。您已经将fun方法声明为派生类上的新方法,但基类上的fun是唯一的公共方法。其他的都是私人的 namespace IndiabixConsoleApplication { class Basecl

因为派生方法不是公共的,所以外部类程序的唯一选择是public BaseClass.fun方法。如果你把Derived2.fun公之于众,它将为你提供你所期望的输出


默认情况下,类方法和属性/字段是私有的,除非显式设置为public、protected或internal。

您应该查找访问修饰符。您已经将fun方法声明为派生类上的新方法,但基类上的fun是唯一的公共方法。其他的都是私人的

namespace IndiabixConsoleApplication
{ 
    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 Program
    { 
        public static void Main(string[ ] args)
        { 
            Derived2 d = new Derived2(); 
            d.fun(); 
        } 
    } 
}