显示实现接口和隐式实现接口区别

先定义一个接口:

public Interface ICategory

{

string GetName();

}

接着实现上面定义的接口:

public class Category:ICategory

{

public string GetName()

{

return name;

}

}

以上的方式是隐式的实现接口(我们默认的都是使用隐式的接口)

显式的实现接口方式:

public class Category:ICategory

{

public string  ICategory.GetName()

{

return name;

}

}

区别:

1. 隐式实现接口时,我们有两种方式调用实现接口的方法(GetName()),即:

ICategory category=new Category();

category.GetName();

Category category=new Category();

categoty.GetName();

2. 显式实现接口时,我们只有一种方法来调用GetName(),即:

ICategory category=new Category();

category.GetName();

结论:

1. 隐式实现接口时,接口和类(实现接口的类)都可以访问类中的方法;

2. 显式实现接口时,只有通过接口来访问类中的方法;

显式优点:

1.隐藏了实现接口的类的实现代码

时间: 2024-09-30 21:58:08

显示实现接口和隐式实现接口区别的相关文章

C# 接口的隐式与显示实现说明

以前在用到接口时,从来没注意到接口分为隐式实现与显示实现.昨天在浏览博客时看到相关内容,现在根据自己的理解记录一下,方便日后碰到的时候温习温习. 通俗的来讲,"显示接口实现"就是使用接口名称作为方法名的前缀;而传统的实现方式称之为:"隐式接口实现".费话不说,例子如下: interface IAnimal { void Dog(); } class Animal:IAnimal { public void Dog() { Console.WriteLine(&quo

C# 接口的隐式与显示实现

以前在用到接口时,从来没注意到接口分为隐式实现与显示实现.昨天在浏览博客时看到相关内容,现在根据自己的理解记录一下,方便日后碰到的时候温习温习.  通俗的来讲,“显示接口实现”就是使用接口名称作为方法名的前缀;而传统的实现方式称之为:“隐式接口实现”.费话不说,例子如下:      interface IAnimal { void Dog(); } class Animal:IAnimal { public void Dog() { Console.WriteLine("dog..."

显示接口和隐式接口的区别:

一.新建一个接口类 using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary> /// InterF 的摘要说明 /// </summary> public class InterF { public interface hide { string show(); } public interface display { string show(

1.扩展方法2.接口的隐式实现和显式实现

1.扩展方法:必须写在一个静态类里面,具体见代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 namespace ConsoleApplication1 {     class Program     {         static void Main(string[] args)         {             Student s = new Stud

C# - 接口_隐式接口实现

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace 接口_隐式接口实现 7 { 8 // 定义接口1 : IChineseGreeting 9 interface IChineseGreeting 10 { 11 void SayHello(); 12 } 13 14 // 定义接口2 : IAmericanGreeting 15 i

实现接口与显式实现接口的区别

原文:http://www.cnblogs.com/chenxizhang/archive/2008/08/22/1274265.html 在实现接口的时候,VS提供了两个菜单,一个是"实现接口",一个是"显式实现接口",它们到底有何不一样呢 我们来比较一下看看 1.首先假设我们有一个接口 public interface ICustomer{    void SomeMethod();} 2.如果是"实现接口",那么代码大致如下 public

selenium中的三种等待方式(显示等待WebDriverWait()、隐式等待implicitly()、强制等待sleep())---基于python

我们在实际使用selenium或者appium时,等待下个等待定位的元素出现,特别是web端加载的过程,都需要用到等待,而等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,在selenium中(appium通用)常用的等待分为显示等待WebDriverWait().隐式等待implicitly_wait().强制等待sleep()三种,下面我们就分别介绍一下这三种等待的区别 在前面的博文中简单介绍了<强制等待和隐士等待的区别和理解>,本文再详细的结合案例进行理解. sleep(): 强

(Android review)显示意图激活与隐式意图激活

一.基本知识点 1.<activity android:label="第一个activity" android:name=".Main2Activity"/> label属性:某个Acivity的标题 2.R文件不要引错了,引成Android底层的了 3.intent.setClass(this, Main2Activity.class);第一个参数:上下文第二个参数:要激活的组件的字节码文件 4.显示意图激活(明确指定了要激活的组件)1)intent.

dynamic_cast 和 static_cast 隐式类型转换的区别

首先回顾一下C++类型转换: C++类型转换分为:隐式类型转换和显式类型转换 第1部分. 隐式类型转换 又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型. int ival = 3;double dval = 3.14159; ival + dval;//ival被提升为double类型 2)一种类型表达式赋值给另一种类型的对象:目标类型是被赋值对象的类型 int *pi = 0;