加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在不使用父类中的“virtual”的情况下覆盖子类中的方

发布时间:2020-12-15 20:46:52 所属栏目:百科 来源:网络整理
导读:这是一个面试问题.那么是否可以覆盖没有在父方法中指定虚拟的方法? 解决方法 他们可能希望您说“使用新关键字隐藏方法”.这在技术上不会覆盖该方法.如果你有 class Base{ public void Bar() { Console.WriteLine("Base"); }}class Derived : Base{ public n
这是一个面试问题.那么是否可以覆盖没有在父方法中指定虚拟的方法?

解决方法

他们可能希望您说“使用新关键字隐藏方法”.这在技术上不会覆盖该方法.如果你有

class Base
{
    public void Bar() { Console.WriteLine("Base"); }
}

class Derived : Base
{
    public new void Bar() { Console.WriteLine("Derived"); }
}

然后你写了

Derived derived = new Derived();
derived.Bar();
((Base)derived).Bar();

你会看到不同的结果.因此,使用基类的函数将获得基本方法的结果,使用派生类的函数将获得新方法的结果.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读