C# 请告诉我为什么这段代码会生成输出“基类”。虽然对象是Derived2类型,而引用变量也是同一类型
因为派生方法不是公共的,所以外部类程序的唯一选择是public BaseClass.fun方法。如果你把Derived2.fun公之于众,它将为你提供你所期望的输出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、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();
}
}
}