zoukankan      html  css  js  c++  java
  • 胡谈...

    看了Allen Lee,基类与接口混合继承的声明问题,发表一下个人看法。
    先运行如下代码:

    namespace Test
    {
        
    using System ;

        
    interface 接口
        
    {
              
    void 方法();
        }


        
    class 基类:接口
        
    {
             
    public void 方法() 
            
    {
                Console.WriteLine(
    "这是基类的方法哦!");
            }


            
    void 接口.方法()
            
    {
                Console.WriteLine(
    "我是接口专门的实现方法哦,你不要逃避嘛。");
            }

        }


        
    class 没有接口的继承:基类
        
    {
            
    /// <summary>
            
    /// 这里只有通过new才能够用新的方法来覆盖
            
    /// </summary>

            public new void 方法()
            
    {
                Console.WriteLine(
    "我只能够使用 new 来屏蔽它,不过,在IDesign的编程规范中,不推荐用 new。");
            }

        }


        
    class  有接口的继承: 基类, 接口
        
    {
             
    void 接口.方法() 
            
    {
                Console.WriteLine(
    "这就叫做接口的重映射,这只是技巧性的东西而已。");
            }
     
        }


        
    class TestClass
        
    {
            [STAThread]
            
    static void Main(string[] args)
            
    {
                基类 c1 
    = new 基类();
                c1.方法();

                接口 i1 
    = new 基类();
                i1.方法();

                Console.WriteLine();

                没有接口的继承 c2 
    = new 没有接口的继承();
                c2.方法();

                接口 i2 
    = new 没有接口的继承();
                i2.方法();

                Console.WriteLine();

                有接口的继承 c3 
    = new 有接口的继承();
                c3.方法();

                接口 i3 
    = new 有接口的继承();
                i3.方法();

                Console.Read();
            }

        }

    }


    运行结果如下:
    这是基类的方法哦
    我是接口专门的实现方法哦,你不要逃避嘛。

    我只能够使用 new 来屏蔽它,不过,在IDesign的编程规范中,不推荐用 new。
    我是接口专门的实现方法哦,你不要逃避嘛。

    这是基类的方法哦
    这就叫做接口的重映射,这只是技巧性的东西而已。
  • 相关阅读:
    Javescript基础api实现原理
    React Fiber
    ASP.NET中Form验证登录后反复跳转回登录页面的问题
    跨域部署Silverlight时需要注意的问题
    Windows 8 x64+Ruby 2上安装Sqlite3方法
    .NET 项目在源码控制中程序集的引用问题
    [EntLib]解决The type or namespace name 'Data' does not exist in the namespace 'Microsoft.Practices.EnterpriseLibrary' 的错误
    ASP.NET MVC Url中参数过长引发的问题
    Windows 8 x64 QQ2012/2013beta无法启动屌丝解决方法
    TechEd 2010参会小记
  • 原文地址:https://www.cnblogs.com/William_Fire/p/65263.html
Copyright © 2011-2022 走看看