new 与override 区别

1
2
3
4
5
6
BaseC baseC=new BaseC ();
            baseC.Invoke();
            BaseC derivedC =new DerivedC (); 
            derivedC.Invoke();
            SuperA superA = new SuperA(); //new 必须申明也是本类
            superA.Invoke();BaseC superA1 = new SuperA(); //申明是父类<br> superA1.Invoke();

 输出如下: 

    BaseC
    DerivedC
    SuperA
    BaseC //申明是父类

new 隐藏父类,而申明必须也是子类才可以。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class BaseC
    {
        public int x;
        public virtual void Invoke() {
            Debug.WriteLine("BaseC");
        }
    }
    public class DerivedC : BaseC
    {
          public override void Invoke() {
            Debug.WriteLine("DerivedC");
        }
    }
    public class SuperA : BaseC
    {
        public new void Invoke()
        {
            Debug.WriteLine("SuperA");
        }
    }

  

posted @   willamyao  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2021-04-27 js判断是否安桌是否ios
点击右上角即可分享
微信分享提示