`
hqs7636
  • 浏览: 221031 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

接 口 2.014

阅读更多
接口声明:
interface 标识符 接口体
interface 标识符 :上层接口 接口体
上层接口
标识符
标识符 , 上层接口

接口体:
{ 多个声明定义 }

接口(Interface)描述的是继承自某个接口的类所必须实现的一系列函数。一个接口的实现类可以被转换成对该接口的引用。接口相当于操作系统对象,如 Win32 的COM/OLE/ActiveX,所显露的接口。

接口不能由类派生,只能派生自其它接口。类不能多次从一个接口派生。

interface D
{
void foo();
}

class A : D, D // 错误,多重接口
{}

不允许创建接口的实例。
interface D
{
void foo();
}
...

D d = new D(); // 错误,不能创建接口的实例

接口成员函数不能有实现。

interface D
{
void bar() { } // 错误,不允许实现
}

继承接口的类必须实现接口中的所有函数:

interface D
{
void foo();
}
class A : D
{
void foo() { } // 正确,提供了实现
}
class B : D
{
int foo() { } // 错误,没有提供 void foo() 实现
}

接口可以被继承,其中的函数可以被重写:

interface D
{
int foo();
}
class A : D
{
int foo() { return 1; }
}
class B : A
{
int foo() { return 2; }
}
...
B b = new B();
b.foo(); // 返回 2
D d = cast(D) b; // 正确,因为 B 继承了 A 的 D 实现
d.foo(); // 返回 2;

接口可以在派生类中重新实现:
interface D
{
int foo();
}
class A : D
{
int foo() { return 1; }
}
class B : A, D
{
int foo() { return 2; }
}
...

B b = new B();
b.foo(); // 返回 2
D d = cast(D) b;
d.foo(); // 返回 2
A a = cast(A) b;
D d2 = cast(D) a;
d2.foo(); // 返回 2,尽管它是 A 的 D,不是 B 的 D

如果类要重新实现接口,必须重新实现接口的所有函数,不能从父类中继承:
interface D
{
int foo();
}
class A : D
{
int foo() { return 1; }
}
class B : A, D
{
} // 错误,接口 D 没有 foo()

2.014
Const and Invariant Interfaces

If an interface has const or invariant storage class, then all members of the interface are const or invariant. This storage class is not inherited.

13.1 COM 接口

接口的一个变体是 COM 接口。按照设计,COM 接口被为直接映射到 Windows COM 对
象。任何 COM 对象都由一个 COM 接口表示,任何带有 COM 接口的 D 对象都可以被外
部 COM 客户端使用。

按定义,COM 接口从 std.c.windows.com.IUnknown 接口派生。

COM 接口与普通 D接口的不同之处在于:
• 它从 std.c.windows.com.IUnknown 接口派生。
• 它不能成为 Delete表达式 的参数。
• 引用不能向上转型为封闭的类对象,也不能向下转型为从它派生的接口。为了达到这
个目的,必须按照标准的 COM 风格为接口实现一个合适的 QueryInterface()
方法。





。。。。。。。。。。。。。。
分享到:
评论

相关推荐

    Proface人机界面和yaskawa变频器通讯连接说明.pdf

    - 参数Pn50A和Pn50B的设置用于处理N.OTP.OT跳跃闪烁的问题,其中Pn50A的初始值2100通常改为8100,如果有特定需求,如不接外部S-ON开关或需要分频改变转速,则相应调整。 - 控制方式参数Pn000初始值需从0000改为0010...

    014长条、拼花硬木地板施工工艺.doc

    2. 拼花木地板应符合设计尺寸,同时要有合格证。 3. 毛地板、木搁栅和垫木需要做防腐处理,并满足设计尺寸要求。 4. 硬木踢脚板的尺寸、含水率、背面防腐处理以及颜色和面层地板的匹配度都需要考虑。 5. 其他辅助...

    通信接口保护电路

    2. **PPTC保险丝**:选用SMD014用于前后级隔离和电流保护。 3. **瞬态电压抑制器(TVS)**:选用BWLC05C、P0080SB或SMBJ5.0CA作为二级保护。 4. **雷击测试标准**:同样满足10/1000μs、4Kv雷击测试,符合IEC6100-4-5...

    014长条、拼花硬木地板施工.doc

    2. **作业条件** - 墙体和顶面抹灰完成,门框安装完毕,已弹出+50cm水平标高线。 - 屋面防水、穿楼面管线已完成,管洞堵塞密实。 - 预埋在地面内的电管完成,暖卫管道试水、打压合格。 - 房间四周弹出踢脚板上口...

    QI_RD_014[A1]立式射出成型机作业规范方案.doc

    2. 压力控制:包括总压、射出一次压力、二次压力、关模低压和背压。总压用于关模,低压用于保护模具,一次压和二次压则关乎成品的质量,背压则影响螺杆加料的均匀性。 3. 时间控制:射出时间、冷却时间、低压时间和...

    R7F0C903-908数据手册.pdf

    2. 工作电压范围:该微控制器支持从1.6伏到5.5伏的宽范围工作电压,并且仅需单一电源供电。 3. 存储容量:内置16到48千字节的Flash存储器,以及2或3千字节的RAM。 4. 处理性能:在24兆赫兹的最高工作频率下,16位...

    设备具体参数及要求.pdf

    0.014 Lux @(F1.4,AGC ON);0 Lux with IR + 快门:1/3秒至1/100,000秒 + 镜头:2.8-12mm @ F1.4,水平视场角:74.6°~26.8° + 镜头接口类型:Φ14 自动光圈 DC 驱动 + 日夜转换模式:ICR红外滤片式 + 宽动态...

    014轻钢骨架罩面板顶棚施工工艺.doc

    2. **操作工艺** - **工艺流程**:首先,按照楼层标高弹出顶棚水平线,然后划分龙骨分档线。接着,安装主龙骨吊杆,主龙骨,次龙骨。在主龙骨上安装罩面板,涂刷防锈漆,最后安装压条。 - **具体步骤**: - ...

    酷开刷机升级 42K1 55K1 K1Y K1TY K1T 系统强刷 8A13强刷包 酷开4.21系统 V014.012.181

    3、请确保电视不是待机,然后关闭电源,插上U盘(建议插最上面主口); 4、长按电视机背后的 确定/待机 按键,通电,等30-60秒,屏幕出现2个齿轮相互转动即可; 如长按 确定/待机 按键,没有出现2个齿轮相互转动的...

    VB编程资源大全(源码 其它3)

    o029_snow.zip 一个雪花飘落例子(3KB) 626,o028_zoomsys.zip 类似画图放大镜的东西(2KB) 627,o027_wiz2.zip 制作应用程序向导的例子(类似安装程序的界面)!(5KB) 628,o025_StopWatch.zip “跑表...

    日立HGE-3故障码说明.pdf

    2. 故障代码E011指出[A1级]主微机检测到变频微机故障。这可能是软件或硬件方面的问题,比如变频微机在双口RAM中的正常标志超过80毫秒没有变化。检查时需排除变频器侧故障,并确认变频微机工作指示灯处于绿灯亮状态。...

    北斗星部分配件价格资料.pdf

    2. **发动机支承梁减振衬套**:这两个部件(11610-75F00和11710-75F00)是发动机固定于车身的关键零件,其作用是吸收发动机工作时产生的振动,保持车辆稳定性。价格均为18.70元。 3. **后止动器托架**:11921-75F20...

    玩转智能办公 极企AX1000无线路由器.pdf

    2. **远程办公**:支持远程接入私有云存储,便于员工在家或其他地点工作时访问公司资源。 3. **会议室**:提供高速稳定的无线网络,满足会议期间视频会议、资料共享等需求。 4. **多设备管理**:适合需要连接多个...

    完整版第16章.doc

    2. **工程进度方案**: - 工程时间跨度从3月到2009年12月31日,需确保按质按量按时完成。 - 提供了施工进度方案,遵循投标文件和合同要求。 3. **材料采购与管理**: - 所有钢材、焊接材料等必须符合图纸及国家/...

    GIC钻石分级师复习资料全.docx

    - 色散值: 0.014。 - **用途**: 作为宝石级别的合成材料。 #### 十三、钇铝榴石 - **化学成分**: 钇、铝氧化物。 - **物理性质**: - RI: 1.83。 - H: 8。 - SG: 4.57。 - 色散值: 0.028。 - **应用**: 人造...

    VB编程资源大全(源码 网络)

    i012.zip 如何在vb中调用i/o口的例子(10KB) 122,i011.zip 演示连接/断开network(3KB) 123,i010.zip chat程序例子(12KB) 124,i009.zip 简单的邮件发送例子 (13KB) 125,i008.zip 启动一个...

Global site tag (gtag.js) - Google Analytics