C#派生类不会重写基方法

C#派生类不会重写基方法,c#,linux,polymorphism,ubuntu-16.04,derived-class,C#,Linux,Polymorphism,Ubuntu 16.04,Derived Class,目前正在处理对象和类。 我正在学习老师给我举的一个例子,但它并没有发挥应有的作用。 请注意,我是在ubuntu上工作,而不是在windows上工作,我不确定这是否会影响什么 using System; namespace AEDlc { /**Base Classe Employee**/ class Employee { private string name; public Employee(string PersonName)

目前正在处理对象和类。 我正在学习老师给我举的一个例子,但它并没有发挥应有的作用。 请注意,我是在ubuntu上工作,而不是在windows上工作,我不确定这是否会影响什么

using System;

namespace AEDlc
{
    /**Base Classe Employee**/
    class Employee
    {
        private string name;
        public Employee(string PersonName)
        {
            name = PersonName;
        }
        public void ShowName()
        {
            Console.WriteLine("{0}", name);
        }

        public virtual void ShowFunc()
        {
            Console.WriteLine("Employee");
        }
    }

    /** Classe Employer **/
    class Employer : Employee
    {
        public Employer(string EmployerName) : base(EmployerName)
        {
        }
        /** New func "ShowFunc" **/
        public override void ShowFunc()
        {
            Console.WriteLine("Employer");
        }
    }
    /** Main **/
    class KindaMain
    {
        static void Main()
        {
            /** worker array **/
            Employee[] worker = new Employee[]
            {
                new Employee("Base Dude"),
                new Employee("Base Dude 2"),
                new Employer("Boss Dude")
            };
            /** Show Info **/
            for (int i = 0; i < worker.Length; i++)
            {
                worker[i].ShowName();
                worker[i].ShowFunc();
                Console.WriteLine();
            }
        }
    }
}
}
输出应该是这样的:

Base Dude
Employee

Base Dude 2
Employee

Boss Dude
Employer
谁能帮我理解我哪里做错了。真的找不到

更新: 不知何故,我未能关闭注释,因此整个方法都被注释掉了。因为我在研究nano,我没有注意到这一点,就像很多朋友一样。很抱歉发这篇文章。
我是否应该删除此帖子?

我不确定这是否只是您在此处的评论中的错误,但在您的雇主类中,您已经注释掉了ShowFunc方法,因此将调用Employee类上的ShowFunc方法,从而生成“Employee”


如果只是一个错误,请尝试单步执行代码,以便查看执行的方法。

我认为您的问题在于您没有关闭注释
/**New func“ShowFunc”
,它正在注释ShowFunc重写


尝试
/*New func“ShowFunc”*/

您的
ShowFunc
Employer
中被注释掉,因此它将采用基类实现。您正在使用
ShowFunc
方法打印类型名称,该方法经过硬编码以返回
“Employee”
Employer
中的覆盖方法被注释掉了,因为注释行上写着
New func“ShowFunc”
没有结束符
**/
,因此您的覆盖方法不会被编译和调用。这更像是注释而不是答案。是的,这是正确的。我现在觉得自己真的很傻,真的很抱歉发这样一篇愚蠢的帖子。将尽快更新。
Base Dude
Employee

Base Dude 2
Employee

Boss Dude
Employer