• c#接口显式和隐式实现的区别


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 接口显式隐式实现
    {
        class Program
        {
            static void Main(string[] args)
            {
                Test t1 = new Test();
                ITest2 test2 = t1;
                test2.study();//ITest2.study  显式实现时候,接口能访问实现接口的方法
                t1.study();//ITest1.study     显式实现时候,子类不能访问显式实现接口的方法,只能访问到类里默认方法
                Test t2 = new Test();
                ITest1 test1 = t2;
                test1.study();//ITest1.study  隐式实现时候,接口能访问实现接口的方法
                t2.study();//ITest1.study      隐式实现时候,子类能访问实现接口的方法,其实也就访问默认方法。
            }
        }
    
    
        interface ITest1
        {
            void study();
        }
        interface ITest2
        {
            void study();
        }
        class Test : ITest1, ITest2
        {
             public void study()  //默认就是隐式实现,如果其他接口没显式实现,此时候会同时实现2个接口,如果显式实现了其他接口,此方法不对显式实现接口共享了。实现接口前面需要用public 修饰
            {
                Console.WriteLine("ITest1.study");
            }
            void ITest2.study()  //如果我们要显式实现,就要加上 ITest2.   前面不能有 public,private修饰符
            {
                Console.WriteLine("ITest2.study");
            }
        }
    }

    显式实现的区别:

    1、显示实现的方法只能被接口调用了,不能被类调用该方法,调用会语法报错。

    2、如果类实现多个接口,多个接口都有对应的同一个方法名。此时候要么都共同用一个方法实现;要么单独各自实现不同接口的方法,要实现各自的方法就需要用到显式实现了,然后通过 对应的接口对象来调用显式实现的方法

  • 相关阅读:
    【转】跨域的理解与实现
    【3.5】从今天开始学习WCF技术
    LAB.js使用
    资源文件的动态加载
    C#对图片文件的压缩、裁剪操作初探
    WCF技术剖析_学习笔记之一
    SQL 写入调优
    【转】Nosql,为什么要使用
    wcf配置文件
    wcf错误
  • 原文地址:https://www.cnblogs.com/ilrc/p/14984313.html
Copyright © 2020-2023  润新知