草庐IT

INTERFACE

全部标签

c# - 抽象类或接口(interface)。哪种方式是正确的?

在抽象类和接口(interface)之间有两种选择。Microsoft解决方案和Oracle解决方案:Microsoft,设计指南:使用抽象类(在VisualBasic中必须继承)而不是接口(interface)来将契约与实现分离。http://msdn.microsoft.com/en-us/library/ms229013.aspxOracle,Java教程:如果抽象类只包含抽象方法声明,则应将其声明为接口(interface)。http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html我的问题是哪种方式是正确的?

java - 在 Java 中,当一个接口(interface)扩展另一个接口(interface)时,为什么要在子接口(interface)中重新声明一个方法?

我一直在查看来自J2EE的JMSAPI,并发现了一个奇怪的行为,即在接口(interface)中声明的某些方法(例如,Session中的createQueue)在QueueSession等子接口(interface)中再次声明,并且具有相同的文档。由于子接口(interface)“继承”了它继承的接口(interface)的所有方法声明,并且由于JavaDoc工具可以毫无问题地整理子接口(interface)的JavaDoc并创建“继承的操作”列表,所以我无法弄清楚是什么这样就实现了。唯一想到的是,最初调用是在Session中,然后在创建特定子类时转移到QueueSession,尽管那

Java接口(interface)和继承

如果我们有:publicinterfaceFoo{}publicclassBarimplementsFoo{...}有区别吗:publicclassBarBarextendsBarimplementsFoo{..}和publicclassBarBarextendsBar{..}我看到很多这样的代码,但它总是让我感到困惑。BarBar是否需要实现Foo?我的意思是,既然它扩展了Bar开始,那不是已经存在了吗?我想我的问题是,在BarBar中实现Foo的目的是什么? 最佳答案 主要区别在于15个完全不必要的字符:-)当您的父类实现某个接

java - 在 Java 中,cast(即(ClassName))的实例和类型如何作用于代理对象?

Java为给定的接口(interface)生成代理类,并提供代理类的实例。但是当我们将代理对象类型转换为我们特定的对象时,java是如何在内部处理的呢?这是否被视为特殊情况?例如,我有类OriginalClass并且它实现了OriginalInterface,当我通过传递OriginalInterface接口(interface)创建代理对象时,Java创建了代理类ProxyClass使用提供的接口(interface)中的方法并提供此类的对象(即ProxyClass)。如果我的理解是正确的,请您回答以下问题当我将ProxyClass的转换对象键入到我的类OriginalClass时,

java - 为什么必须在 Java 中声明接口(interface)?

有时我们有几个类,它们的某些方法具有相同的签名,但并不对应于已声明的Java接口(interface)。例如,JTextField和JButton(以及javax.swing.*中的其他几个方法)都有一个方法publicvoidaddActionListener(ActionListenerl)现在,假设我想对具有该方法的对象做一些事情;然后,我想要一个接口(interface)(或者可能自己定义它),例如publicinterfaceCanAddActionListener{publicvoidaddActionListener(ActionListenerl);}这样我就可以写:p

java - 接口(interface)作为标签在 Java OO 中是一种不好的做法吗?

我在解析某些xml文件的过程中,遇到一种情况,我必须使用接口(interface)作为标签来标识某些标签属于某个类别,例如我创建了一个Tag接口(interface)来标识这些类用于表示xml标签,ContainableTag指出某些标签可以是某些标签的子标签之一。然后我无意中进入了这个页面:http://xahlee.org/java-a-day/interface.html(请查找“作为标签的界面”session。)它说:Thegistoftheproblemisthatitisapieceofmathematicalirrelevanceinthelanguage.Asalabe

java - 使用 Collection 接口(interface)创建 ArrayList 对象的多态性有什么好处?

我研究了多态性,了解到它可以像下面这样进行动态方法绑定(bind)。假设类Animal是抽象类。publicclassAnimalReference{publicstaticvoidmain(Stringargs[])Animalref//setupvarforanAnimalCowaCow=newCow("Bossy");//makesspecificobjectsDogaDog=newDog("Rover");//nowreferenceeachasanAnimalref=aCow;ref.speak();ref=aDog;ref.speak();}我曾经像这样创建ArrayLis

java - 如何在 Windows 和/或 Mac 上的 Java 应用程序中找到我的 "computer description"?

我一直在努力寻找运行我的Java应用程序的计算机的“描述”。我想要的是在本地网络上宣传我的计算机时用于DNS的名称(下面屏幕截图中的“iMacMattijs”)。在WindowsXP上,可以在此处找到此名称:控制面板->系统->计算机名称->计算机描述。在MacOS10.6上,可以在此处找到此名称:系统偏好设置->共享->计算机名称以下方法无法提供我要查找的名称。看看这段代码:System.out.println("COMPUTERNAMEenvironmentvariable:"+System.getenv("COMPUTERNAME"));try{System.out.printl

java - 当我有并非所有实现者都支持的操作时,设计界面的正确方法是什么?

我有一个接口(interface)和两个实现接口(interface)的类。publicinterfaceMyInterface{publicvoidfirstMethod();publicintsecondMethod();}publicclassMyClass1implementsMyInterface{publicvoidfirstMethod(){}}publicclassMyClass2implementsMyInterface{publicvoidfirstMethod(){}publicintsecondMethod(){}}MyClass1类告诉我添加未实现的方法,因为

java - 为什么我们不能在没有匿名类方法的情况下在java中实例化接口(interface)或抽象类?

我知道,除了使用匿名类方法,我们不能在java中实例化接口(interface)或抽象类,但它背后的原因是什么? 最佳答案 您不能实例化接口(interface)或抽象类,因为它会违背面向对象的模型。接口(interface)代表契约-接口(interface)的实现者将能够做所有这些事情,履行契约的promise。抽象类是一个类似的想法,因为它们代表一个未履行的契约(Contract),一个能够做事的promise,除了与接口(interface)不同的是,它们定义了一些功能或字段,但需要在使用前填写。简单地说,在一个好的面向对象