zoukankan      html  css  js  c++  java
  • Interface & query interface

    接口属性:

    • 接口成员不能有修饰符。
    • 接口的真正用途要通过继承接口的派生类中实现。
    • 在派生类中,接口中的类将被重写,实现具体功能。
    • C#不允许多重类继承;
    • 但C#允许多重接口实现;
    • 这意味着一个类可以实现多个接口;

    显式接口实现:

    • 由于不同接口中的方法可以重名,因此,在一个类中实现接口的方法时就存在着多义性的问题。对于这类问题,可以显式实现接口中的方法。
    • 显式接口实现的本质是在派生类中重写接口中的方法时,指明被继承的接口名称。
    • 对于显式实现的接口方法,不能通过类的实例进行访问,而必须使用接口的实例进行访问。

    接口的切换:(QI:query interface)

    • 由于显式的实现了接口,所以调用函数不能直接通过类的实例来调用接口的方法。
    • 而是必须将句柄传递给接口类型的句柄,并通过接口句柄来调用实例的显式实现的方法。
    • 当需要调用类的不同的接口的方法时,需要切换新的接口句柄以调用其它的方法,这个操作就是query interface
    接口的继承
    • 扩展接口:在已有接口的基础上派生新的接口。
    • 组合接口:在已有两个以上接口的基础上派生新的接口。
  • 相关阅读:
    cf C. Vasya and Robot
    zoj 3805 Machine
    cf B. Vasya and Public Transport
    cf D. Queue
    cf C. Find Maximum
    cf B. Two Heaps
    cf C. Jeff and Rounding
    cf B. Jeff and Periods
    cf A. Jeff and Digits
    I Think I Need a Houseboat
  • 原文地址:https://www.cnblogs.com/henyihanwobushi/p/2590632.html
Copyright © 2011-2022 走看看