接口映射的实现及原理

看了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();
    }
  }
}

我们先看看 该代码的类图的层次结构吧

时间: 2024-12-12 12:14:40

接口映射的实现及原理的相关文章

接口继承-关于java中Dao模块接口问题,请教一下原理

问题描述 关于java中Dao模块接口问题,请教一下原理 BaseDao.java public interface BaseDao {} BaseDaoImpl.java public abstract class BaseDaoImpl implements BaseDao {} UserService.java public interface UserService extends BaseDao{} UserServiceImpl.java public class UserServi

PHP接口开发加密技术实例原理与例子

方法一,固定一个值,如md5('www.111cn.net') 然后把生成的字符在url或post传递时进行验证 方法二,稍微复杂点双方约定好生成的格式 下面例子www.111cn.net简单讲解PHP接口开发加密技术: 如app要请求用户列表,api是"index.php?module=user&action=list" app生成token = md5sum ('user'.'2012-11-28′.'www.111cn.net'.list) = 880fed4ca2aab

java 深入理解内存映射文件原理_Android

内存映射文件原理 首先说说这篇文章要解决什么问题? 1.虚拟内存与内存映射文件的区别与联系. 2.内存映射文件的原理. 3.内存映射文件的效率. 4.传统IO和内存映射效率对比. 虚拟内存与内存映射文件的区别与联系 二者的联系 虚拟内存和内存映射文件都是将一部分内容加载到,另一部分放在磁盘上的一种机制,二者都是应用程序动态性的基础,由于二者的虚拟性,对于用户都是透明的. 虚拟内存其实就是硬盘的一部分,是计算机RAM与硬盘的数据交换区,因为实际的物理内存可能远小于进程的地址空间,这就需要把内存中暂

Anciroid的IPC机制-Binder原理

Binder驱动的原理和实现 通过上一节的介绍,大家应该对Binder有了基本的认识了.任何上层应用程序接口和用户操作都需要底层硬件设备驱动的支持,并为其提供各种操作接口.本节首先从Binder的驱动实现人手,分析其原理和它提供给用户层使用的接口. Binder驱动的原理 为了完成进程间通信,Binder采用了AIDL(Android Interface Definition Language)来描述进程间的接口.在实际的实现中,IBinder是作为一个特殊的字符型设备而存在的,设备节点为 /d

本原接口(RNI)

同J/Direct相比,RNI是一种比非Java代码复杂得多的接口:但它的功能也十分强大.RNI比J/Direct更接近于JVM,这也使我们能写出更有效的代码,能处理固有方法中的Java对象,而且能实现与JVM内部运行机制更紧密的集成. RNI在概念上类似Sun公司的JNI.考虑到这个原因,而且由于该产品尚未正式完工,所以我只在这里指出它们之间的主要差异.欲了解更详细的情况,请参考微软公司的文档. JNI和RNI之间存在几方面引人注目的差异.下面列出的是由msjavah生成的C头文件(微软提供的

ORM中的继承关系映射全解——单表继承体系、一实体一具体表、一实体一扩展表

ORM中的继承关系映射全解--单表继承体系.一实体一具体表.一实体一扩展表.接口映射 本文涉及的内容包括: 1.单表继承体系 2.一实体一具体表 3.一实体一扩展表 4.接口实现映射vs基类继承映射 1.单表继承体系 所谓单表继承体系就是用一张数据库表存储整个继承体系中的所有实体的数据.单表继承体系适合那种继承体系中实体数目相对较少,总记录数相对较少,子类对父类的属性扩展也相对较少的情形. 单表继承体系优点是读/写继承体系中的每个实体的数据,都只需操作一张表,性能较好,并且,新增继承类,或扩展实

我是如何理解Java抽象类和接口的

在面试中我们经常被问到:Java中抽象类和接口的区别是什么?然后,我们就大说一通抽象类可以有方法,接口不能有实际的方法啦;一个类只能继承一个抽象类,却可以继承多个接口啦,balabala一大堆,就好像把标准答案熟练的说出来一样. 抽象类和接口这篇文章讲到了他们的区别和联系,它们确实有很多相似的地方,但是从本质上看,或从语言的设计角度来看,这不是它们最本质的区别. 不卖关子,我个人对这两个的理解: 类是具体实例的抽象,比如一个json字符串的抽象;而抽象类就是类的抽象;接口就是抽象类的抽象,接口更

迭代器Iterator的底层实现原理

第一步:没有接口的迭代器简单实现原理   1 package com.bjsxt.xiaofei; 2 /** 3 * 迭代器底层原理 4 * 方法: 5 * hasNext() 6 * next() 7 * remove() 8 * @ClassName: MyAarryList 9 * @Description: TODO(这里用一句话描述这个类的作用) 10 * @author 尚晓飞 11 * @date 2014-7-29 下午7:06:09 12 * 13 */ 14 public

谈谈如何使用Netty开发实现高性能的RPC服务器

  RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络,从远程计算机程序上请求服务,而不必了解底层网络技术的协议.说的再直白一点,就是客户端在不必知道调用细节的前提之下,调用远程计算机上运行的某个对象,使用起来就像调用本地的对象一样.目前典型的RPC实现框架有:Thrift(facebook开源).Dubbo(alibaba开源)等等.RPC框架针对网络协议.网络I/O模型的封装是透明的,对于调用的客户端而言,它就认为自己在调用本地的一个对象