首页 > Windows开发 > 详细

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

时间:2021-07-08 09:51:10      阅读:20      评论:0      收藏:0      [点我收藏+]
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、如果类实现多个接口,多个接口都有对应的同一个方法名。此时候要么都共同用一个方法实现;要么单独各自实现不同接口的方法,要实现各自的方法就需要用到显式实现了,然后通过 对应的接口对象来调用显式实现的方法

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

原文:https://www.cnblogs.com/ilrc/p/14984313.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!