Questions tagged «interface»

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


14
为什么我不能在接口中声明静态方法?
该主题充分说明了这一点-为什么不能在接口中声明静态方法的原因是什么? public interface ITest { public static String test(); } 上面的代码给了我以下错误(至少在Eclipse中):“接口方法ITest.test()的非法修饰符;仅允许public和abstract”。

11
接口中的构造函数?
我知道不可能在接口中定义构造函数。但是我想知道为什么,因为我认为这可能非常有用。 因此,您可以确定为该接口的每种实现定义了类中的某些字段。 例如,考虑以下消息类: public class MyMessage { public MyMessage(String receiver) { this.receiver = receiver; } private String receiver; public void send() { //some implementation for sending the mssage to the receiver } } 如果为该类定义一个接口,以便我可以有更多实现消息接口的类,则只能定义send方法,而不能定义构造函数。那么,如何确保此类的每个实现都确实有一个接收者集?如果我使用类似的方法,setReceiver(String receiver)则不能确定是否真的调用了该方法。在构造函数中,我可以确保这一点。
148 java  interface 


4
为什么有人将Java接口方法声明为抽象方法?
今天,我使用了Eclipse的“拉接口”重构功能来基于现有类创建一个接口。该对话框提供了将新界面的所有新方法创建为“抽象”方法的功能。 这样做的好处是什么? 我认为,允许您将接口方法声明为抽象的事实是该语言的多余且无害的功能,因此不建议特别提倡。 为什么Eclipse支持这种样式,或者为什么有人自愿选择支持这种样式? 澄清:我不是在问为什么接口方法是抽象的,这是显而易见的。我想问为什么人们会明确选择将它们标记为抽象,因为如果它们在接口中,它们无论如何都是抽象的。

11
跳入Eclipse IDE中的接口实现
您知道在Eclipse中如何按下F3某个方法将带您进入它的声明?好吧,我有一个方法是接口的一部分。单击F3此按钮自然会带我进入声明界面。 显然,有一个对象实现此接口,而这正是该方法实际实现的地方。我想在F3按时跳转到实现,而不是接口声明。我知道实现可能在编译时未知,因此Eclipse是否有办法向我展示实现该接口的所有类,以便我可以选择查看哪个实现的方法?现在,发生这种情况时,我只是手动搜索此内容以找到实现的方法。



3
C#:抽象类需要实现接口吗?
我在C#中的测试代码: namespace DSnA { public abstract class Test : IComparable { } } 导致以下编译器错误: error CS0535: 'DSnA.Test' does not implement interface member 'System.IComparable.CompareTo(object)' 由于该类Test是一个抽象类,为什么编译器需要它来实现接口?这项要求不是仅对具体课程是强制性的吗?


5
Java8:为什么禁止为java.lang.Object中的方法定义默认方法
默认方法是Java工具箱中一个不错的新工具。但是,我试图编写一个定义方法default版本的接口toString。Java告诉我这是禁止的,因为在中声明了方法java.lang.Object可能无法default编辑。为什么会这样呢? 我知道有一个“基类总是赢”的规则,因此默认情况下(pun;),default该Object方法的任何实现都会被该方法覆盖Object。但是,我认为没有理由为什么Object规范中的方法不应有例外。尤其是因为toString默认实现可能非常有用。 那么,Java设计者决定不允许default方法覆盖方法的原因是什么Object?

4
在C#中,一个类可以从另一个类和一个接口继承吗?
我想知道一个类是否可以从一个类和一个接口继承。下面的示例代码不起作用,但我认为它传达了我想做的事情。之所以要这样做,是因为在我公司我们制造USB,串行,以太网等设备。我正在尝试开发一个通用组件/接口,我可以使用它为所有设备编写程序,以帮助使所有应用程序的通用特性(例如连接,断开连接,获取固件)保持一致。 要添加到这个问题:如果GenericDevice在另一个项目中,我可以将IOurDevices接口放在该项目中,然后如果我添加对第一个项目的引用,则使USBDevice类实现该接口吗?因为只想引用一个项目,然后根据设备是什么实现不同的接口。 class GenericDevice { private string _connectionState; public connectionState { get{return _connectionState; } set{ _connectionState = value;} } } interface IOurDevices { void connectToDevice(); void DisconnectDevice(); void GetFirmwareVersion(); } class USBDevice : IOurDevices : GenericDevice { //here I would define the methods in the interface //like this... void connectToDevice() …

9
评论界面,实现或两者?
我想象我们所有人(当我们可以打扰的时候!)评论我们的界面。例如 /// <summary> /// Foo Interface /// </summary> public interface Foo { /// <summary> /// Will 'bar' /// </summary> /// <param name="wibble">Wibble factor</param> void Bar(string wibble); } 您是否还评论了实现(它也可以提供给客户,例如作为aa库的一部分)?如果是这样,您如何管理两者同步?还是只添加“查看文档界面”注释? 谢谢
128 c#  java  comments  interface 

7
为什么实现接口的抽象类可能会错过接口方法之一的声明/实现?
当您使用抽象类实现接口时,Java中发生了一件奇怪的事情:某些接口的方法可能会完全丢失(即既没有抽象声明也没有实际的实现),但是编译器不会抱怨。 例如,给定接口: public interface IAnything { void m1(); void m2(); void m3(); } 以下抽象类在没有警告或错误的情况下得到了愉快的编译: public abstract class AbstractThing implements IAnything { public void m1() {} public void m3() {} } 你能解释为什么吗?

1
扩展方法可以应用于接口吗?
是否可以将扩展方法应用于接口?(C#问题) 例如,这可以实现以下目的: 创建一个ITopology接口 为此接口创建扩展方法(例如,公共静态int CountNodes(此ITopology topologyIf)) 然后在创建实现ITopology的类(例如MyGraph)时,它将自动具有Count Nodes扩展。 这样,实现接口的类不必具有设置的类名即可与扩展方法中定义的名称保持一致。

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.