new 隐藏父类方法: 调用的show,为 左边变量(正好和虚方法相反)

例子:

class Child1 : Parent1
    {
        public new void show()
        {
            Console.WriteLine("Child1: hello.");
        }
    }

 class Parent1
    {
        public  void show()
        {
            Console.WriteLine("Parrent1: hello.");
        }

    }
 static void Main(string[] args)
        {
            // new方法实验
            Parent1 p1 ;
            Child1 c1;

            // 父类 = 父类
            p1 = new Parent1();
            p1.show();          // Parent1: hello

            // 父类 = 子类
            p1 = new Child1();  // 实验后得:这个是唯一特殊的并且正确的用法 父节点=子节点
            p1.show();          // Parent1: hello

            // 子类 = 父类 错误和虚函数一样不能这样写
            // c1 = (Child1)new Parent1(); // 必须有一个转换不然无法通过编译 ,通过编译并且运行到这里报错
            // c1.show();

            // 子类 = 子类
            c1 = new Child1();
            c1.show();          // Child1: hello

        }

总结:

父类 = 父类 = show(父类)// 没毛病

父类 = 子类 = show(父类)// 唯一难度用法

子类 = 父类 = show(错误)// 用法错误

子类 = 子类 = show (子类)//没毛病

new:调用的show,为 左边变量(正好和虚方法相反)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值