接口的显示实现和隐式实现一点笔记

隐式实现 不知道成员的归属

显示实现 显示指定成员的归属(通过 接口名.成员 )



显式实现避免了成员归属混淆不清的情况,特别是多个接口中有相同的成员,或者接口中成员和类自己的成员冲突的情况。


隐式实现

 public interface IBaseInterface1
    {
        void Method1();
        void Method2();
    }
    public interface IBaseInterface2
    {
        void Method1();
        void Method2();
    }

    public class Test : IBaseInterface1, IBaseInterface2
    {
        public void Method1()
        {

        }

        public void Method2()
        {
        }
    }

显式实现

public interface IBaseInterface1
    {
        void Method1();
        void Method2();
    }
    public interface IBaseInterface2
    {
        void Method1();
        void Method2();
    }

    public class Test1 : IBaseInterface1,IBaseInterface2
    {

        void IBaseInterface1.Method1()
        {
        }

        void IBaseInterface1.Method2()
        {
        }

        void IBaseInterface2.Method1()
        {
        }

        void IBaseInterface2.Method2()
        {
        }
    }


有时某个类往往会继承多个接口,而接口中往往会有一些相同名称、参数与类型的值。通过显式接口实现可以为避免一些不必要的歧义。

隐式接口实现,类和接口都可访问接口中方法。显式接口实现,只能通过接口访问。



注意:显式实现的成员不能用public来修饰,所以该成员不能通过该类来访问,只能通过接口访问。

比如


Test1 test = new Test1();
            test.Method1();//调用会出错 这样调用是调不到的
            IBaseInterface1 itest = test as Test1;
            itest.Method1();


结:2015.7.30改

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 04:58:00

接口的显示实现和隐式实现一点笔记的相关文章

基础知识系列?接口的显示实现和隐式实现

x CLR via C#中的一个小结将标题定为:"13.5 隐式和显式接口方法实现(幕后发生的事情)"... 直接上代码 public interface I { int GetIntFun(); int GetIntFunVirtual(); string GetStrFun(); } public class 我是一个类名字叫雷雷 : I { /// <summary> /// 隐式实现-派生类不可以重写 /// 0.必须标记为public,否则报错:{"我是

Intent 的显示意图和隐式意图

Intent是意图,四大组件之间的通讯通过Intent来完成分为显示意图与隐式意图. Intent的显示意图很好理解就是指定好要跳转的界面: 可以通过putExtra传递不同类型的信息,以上只是一些例子.然后在SecondActivity接收这些信息就可以了: int类型与boolean类型接收时要写默认收到的信息即未收到时显示的,要注意与传递的信息区分开. Intent的隐式意图与显示意图相反,它不指定跳转的界面,是根据设置action的值来跳转,只要与设置的action值匹配就行: 然后在清

selenium 的显示等待和隐式等待的区别(记录加强版)

什么是显示等待和隐式等待? 显示等待就是有条件的等待隐式等待就是无条件的等待 隐式等待 当使用了隐式等待执行测试的时候,如果 WebDriver 没有在 DOM 中找到元素,将继续等待,超出设定时间后则抛出找不到元素的异常,换句话说,当查找元素或元素并没有立即出现的时候,隐式等待将等待一段时间再查找 DOM,默认的时间是 0 from selenium import webdriver browser = webdriver.Chrome() browser.implicitly_wait(10

Android -- 显示Intent与隐式Intent的应用

前面的博客我们见到过Intent,我们通过他来指定activity之间的跳转,及数据的传递. 下面我们来了解下Intent,Intent在我们的应用中分为显示和隐式两种方式. 显示Intent 见下面这段程序 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.i

在Android中Intent的概念及应用(一)——显示Intent和隐式Intent

Intent寻找目标组件的两种方式: 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的. 隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间. 一.显示Intent: 创建一个Activity的完整过程: 1.手动创建一个类,让其继承自Activity: public class MyAty extends Activity 2.让其绑定一个

jquery对象的遍历(显示遍历、隐式遍历)

既然jquery对象是个数组,那么就可以通过遍历来操作.示例如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>jquery对象</title> <style type="text/css"> span { width: 100px; height: 100px; background-color: yell

Android开发学习笔记:浅谈显示Intent和隐式Intent

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liangruijun.blog.51cto.com/3061169/655132 Intent寻找目标组件的两种方式: 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的. 隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间.

基础学习总结(八)--Intent中显示意图和隐式意图的用法

Intent(意图)主要是解决Android应用的各项组件之间的通讯.Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用.因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦.例如,在一个联系人维护的应用中,当我们在一个联系人列表屏幕(假设对应的Activity为listActivity)上,点击某个联系人

显示动画,隐式动画、关键帧动画

概要 一些简单的动画代理学习例子,包括显示.隐式.关键帧.关键帧路径四类动画.(感觉这个动画太复杂,学习简单的例子没继续了) 结果展示 流程概要 见代码 主要代码 // // ViewController.m // Animation // // Created by arbboter on 14/12/20. // Copyright (c) 2014年 arbboter. All rights reserved. // #import "ViewController.h" @int