zoukankan      html  css  js  c++  java
  • C#中隐藏(new)和方法重载(overide)的区别

    重写和隐藏的定义:
    重写:基类方法声明为virtual(虚方法),派生类中使用override申明此方法的重写.
    隐藏:基类方法不做申明(默认为非虚方法),在派生类中使用new声明此方法的隐藏。
    这样看起来似乎不是很清晰明了,换成我自己的理解就是:
    比如父类A,有个方法标记为virtual,a(){}   
    子类B继承A,也声明一个方法a(){}   
    如果B里面的a()使用override,那么访问A的方法时实际上调用了B里面声明的方法,相当于A的方法被覆盖了,new就不是,访问A的a还是A里面定义的方法,访问B就是B里面定义的方法.
    说白了:new是覆盖,override是重载,“覆盖”并不意味着“删除”,但“重载”意味着“删除”,这就是“覆盖”和“重载”的区别  
    隐藏(new)示例:
    using    System;  
       class    
       
             public    void    F()    
             
                   Console.WriteLine("A.F");    
             
       
       class    B:    
       
             new    public    void    F()    
               
                   Console.WriteLine("B.F");    
             
       
       class    Test  
       
             static void Main(string[] args)
             
                         new    B();  
                   b.F();  
                         b;    
                   a.F();  
             
       
       输出为  
       B.F  
       A.F  
    重写virtual(虚方法)示例 
     
       using    System;  
       class    
       
             public    virtual    void    F()    
             
                   Console.WriteLine("A.F");    
             
       
       class    B:    
       
             public    override    void    F()    
               
                   Console.WriteLine("B.F");    
             
       
       class    Test  
       
             static    void    Main()    
             
                         new    B();  
                   b.F();  
                         b;    
                   a.F();  
             
       
       输出为  
       B.F  
       B.F
  • 相关阅读:
    Android OCR 之 tesseract
    抛砖引玉 之 谁动了我的流量(0权限上传数据)
    退伍一年了
    android 通过 Hessian 与 j2ee 服务端交互
    Arduino 入手
    抛砖引玉 之 谁动了我的隐私(android用户隐私窥探)
    如何关注那些有价值的微博
    关于培训和外包20111027
    ASP.NET实现Cookie功能的三个基本操作(写入,读取,删除)
    提高你开发效率的十五个Visual Studio 2010使用技巧
  • 原文地址:https://www.cnblogs.com/jiese/p/2054113.html
Copyright © 2011-2022 走看看