Questions tagged «interface»

接口是指与组件交互的指定点。接口在硬件和软件级别均适用。---它也指语言元素“接口”,这是Java,C#和类似语言中单继承的唯一例外。

8
如何在接口上实现静态方法?
我有一个从C#调用的第三方C ++ DLL。 该方法是静态的。 我想将其抽象出来以进行一些单元测试,所以我创建了一个带有静态方法的接口,但是现在我的程序出现以下错误: 修饰语“静态”对此物品无效 MyMethod cannot be accessed with an instance reference; qualify it with a type name instead 如何实现这种抽象? 我的代码看起来像这样 private IInterfaceWithStaticMethods MyInterface; public MyClass(IInterfaceWithStaticMethods myInterface) { this.MyInterface = myInterface; } public void MyMethod() { MyInterface.StaticMethod(); }
90 c#  .net  interface 

6
C#-无法将类型List <Product>隐式转换为List <IProduct>
我有一个包含所有接口定义 的项目:RivWorks.Interfaces 我有一个定义了具体实现的项目:RivWorks.DTO 我已经做过数百次了,但是由于某种原因我现在遇到了这个错误: 无法将类型'System.Collections.Generic.List &lt;RivWorks.DTO.Product&gt;隐式转换为'System.Collections.Generic.List &lt;RivWorks.Interfaces.DataContracts.IProduct&gt; 接口定义(缩短): namespace RivWorks.Interfaces.DataContracts { public interface IProduct { [XmlElement] [DataMember(Name = "ID", Order = 0)] Guid ProductID { get; set; } [XmlElement] [DataMember(Name = "altID", Order = 1)] long alternateProductID { get; set; } [XmlElement] [DataMember(Name = "CompanyId", Order = 2)] Guid CompanyId …

7
如何找到在Eclipse中实现特定接口的类?
我有一个具有许多依赖项的JAR文件应用程序。由于某种原因,我需要反编译其中一个库,并使用Eclipse将其打开。对于项目中的给定接口,是否可以找到实现它的类?该接口可能是在我尚未反编译的其他库中实现的。是否可以针对此类课程呢?


2
接口和类的'instanceof'运算符的行为不同
我想知道有关instanceofJava 中运算符的以下行为。 interface C {} class B {} public class A { public static void main(String args[]) { B obj = new B(); System.out.println(obj instanceof A); //Gives compiler error System.out.println(obj instanceof C); //Gives false as output } } 为什么会这样呢?interface C和之间没有关系class B,但是它给出false,而如果obj instanceof A给出编译器错误?

7
Java-接口实现中的方法名称冲突
如果我有两个接口,它们的用途完全不同,但是具有相同的方法签名,那么我如何使一个类同时实现两个接口,而又不被迫编写一个同时为两个接口服务的方法并在该方法中编写一些复杂的逻辑检查调用的对象类型并调用适当代码的实现? 在C#中,这可以通过所谓的显式接口实现来克服。Java中有什么等效方法吗?

5
PHP 7接口,返回类型提示和自我
更新:PHP 7.4现在确实支持协方差和逆方差,这解决了此问题中提出的主要问题。 我在PHP 7中使用返回类型提示遇到了一些问题。我的理解是,提示: self意味着您打算让实现类返回自身。因此,我: self在接口中使用它来表明这一点,但是当我尝试实际实现接口时,出现兼容性错误。 以下是我遇到的问题的简单演示: interface iFoo { public function bar (string $baz) : self; } class Foo implements iFoo { public function bar (string $baz) : self { echo $baz . PHP_EOL; return $this; } } (new Foo ()) -&gt; bar ("Fred") -&gt; bar ("Wilma") -&gt; bar …

14
Java中的抽象类与接口
我被问到一个问题,我想在这里让我的答案复习。 问:在哪种情况下,扩展抽象类而不是实现接口更合适? 答:如果我们使用模板方法设计模式。 我对么 ? 很抱歉,如果我不能清楚地说明问题。 我知道抽象类和接口之间的基本区别。 1)当需要满足以下条件时使用抽象类:对于特定操作(实现方法),我们需要在每个子类中实现相同的功能,而对于某些其他操作(仅方法签名),则需要实现不同的功能 2)如果需要使签名相同(并且实现不同),请使用接口,以便可以遵循接口实现 3)我们可以扩展一个抽象类的最大值,但是可以实现多个接口 重申一个问题:除了上述提到的情况之外,还有其他情况需要专门使用抽象类吗(可以看到模板方法设计模式仅在概念上基于此)? 接口与抽象类 在这两者之间进行选择确实取决于您要做什么,但幸运的是,对于我们来说,Erich Gamma可以为我们提供一些帮助。 一如既往地需要权衡取舍,接口为您提供了关于基类的自由,抽象类为您提供了以后添加新方法的自由。–埃里希·伽玛(Erich Gamma) 您不能去更改接口而不必更改代码中的许多其他内容,因此避免这种情况的唯一方法是创建一个全新的接口,这不一定总是一件好事。 Abstract classes应该主要用于紧密相关的对象。Interfaces擅长为不相关的类提供通用功能。

2
是否记录了编译器对隐式接口变量的处理?
我不久前问了一个关于隐式接口变量的类似问题。 这个问题的源头是我的代码中的一个错误,因为我没有意识到编译器创建的隐式接口变量的存在。拥有它的过程完成时,此变量已完成。反过来,由于变量的生存期比我预期的长,导致了一个错误。 现在,我有一个简单的项目来说明编译器的一些有趣行为: program ImplicitInterfaceLocals; {$APPTYPE CONSOLE} uses Classes; function Create: IInterface; begin Result := TInterfacedObject.Create; end; procedure StoreToLocal; var I: IInterface; begin I := Create; end; procedure StoreViaPointerToLocal; var I: IInterface; P: ^IInterface; begin P := @I; P^ := Create; end; begin StoreToLocal; StoreViaPointerToLocal; end. StoreToLocal就像您想象的那样被编译。I函数的结果局部变量作为隐式var参数传递给Create。整理StoreToLocal一次即可调用IntfClear。没有惊喜。 但是,StoreViaPointerToLocal区别对待。编译器会创建一个隐式局部变量,并将其传递给Create。当Create返回时,对分配P^进行。这使例程具有两个局部变量,这些局部变量保存对接口的引用。整理StoreViaPointerToLocal导致两次致电IntfClear。 的编译代码StoreViaPointerToLocal如下: ImplicitInterfaceLocals.dpr.24: …

2
了解C#中的协变和逆变接口
我在使用C#阅读的教科书中遇到了这些问题,但是由于缺乏上下文,我很难理解它们。 关于它们是什么以及对它们有用的内容,是否有一个很好的简洁解释? 编辑以澄清: 协变介面: interface IBibble&lt;out T&gt; . . 换向接口: interface IBibble&lt;in T&gt; . .

10
iPhone应用程序是否有现成的日历控件?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 4年前关闭。 改善这个问题 我正在为iPhone开发一个应用程序,它将显示即将发生的事件和过去的事件。我选择了一个列表视图,但是后来我意识到,日历(就像内置日历应用程序的“月”视图中显示的日历一样)将是最佳的选择。 但是,《 iPhone人机界面指南》仅提到了日期选择器,而不是日历,因此我认为没有类似的东西可用。真的吗?如果是这样,是否有人知道可以使用的第三方控件?(我可以自己写一个,但我宁愿准备一些东西,因为这是对原始项目计划的偏离)。

8
JDK 8中的默认值是Java中的一种多继承形式吗?
JDK 8中的一项新功能允许您在保留二进制兼容性的同时添加到现有接口。 语法就像 public interface SomeInterface() { void existingInterface(); void newInterface() default SomeClass.defaultImplementation; } 对于所有现有的实施方式,SomeInterface当他们升级到这个新版本时,并不会突然出现编译错误newInterface()。 虽然这很简洁,但是当您实现两个都添加了您未实现的新默认方法的接口时会发生什么呢?让我举例说明。 public interface Attendance { boolean present() default DefaultAttendance.present; } public interface Timeline { boolean present() default DefaultTimeline.present; } public class TimeTravelingStudent implements Attendance, Timeline { } // which code gets called? new TimeTravelingStudent().present(); 是否已将其定义为JDK …

4
为什么PHP Trait无法实现接口?
我想知道为什么PHP Trait(PHP 5.4)无法实现接口。 从user1460043的答案更新=&gt; ...不能要求使用它来实现特定接口的类 我明白,这可能是显而易见的,因为人们可能会觉得,如果Class A是使用Trait T其正在实施的interface I,比Class A应执行interface Iundirectly(这是不正确的,因为Class A可以重命名特征的方法)。 就我而言,我的特质是从使用特质的类实现的接口调用方法。 特质实际上是接口某些方法的实现。因此,我想在代码中“设计”每个想要使用我的特征的类都必须实现接口。这将允许Trait使用接口定义的类方法,并确保它们存在于类中。
82 php  oop  interface  traits 

3
.h和.m文件中@interface定义之间的区别
通常我们使用 @interface interface_name : parent_class &lt;delegates&gt; { ...... } @end .h文件和.m文件中的方法,我们综合了.h文件中声明的变量的属性。 但是在某些代码中,此@interface ..... @ end方法也保留在.m文件中。这是什么意思?它们之间有什么区别? 还提供一些有关.m文件中定义的接口文件的getter和setter方法的信息... 提前致谢


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.