有时我们有几个类,它们的某些方法具有相同的签名,但并不对应于已声明的Java接口(interface)。例如,JTextField和JButton(以及javax.swing.*中的其他几个方法)都有一个方法publicvoidaddActionListener(ActionListenerl)现在,假设我想对具有该方法的对象做一些事情;然后,我想要一个接口(interface)(或者可能自己定义它),例如publicinterfaceCanAddActionListener{publicvoidaddActionListener(ActionListenerl);}这样我就可以写:p
我在解析某些xml文件的过程中,遇到一种情况,我必须使用接口(interface)作为标签来标识某些标签属于某个类别,例如我创建了一个Tag接口(interface)来标识这些类用于表示xml标签,ContainableTag指出某些标签可以是某些标签的子标签之一。然后我无意中进入了这个页面:http://xahlee.org/java-a-day/interface.html(请查找“作为标签的界面”session。)它说:Thegistoftheproblemisthatitisapieceofmathematicalirrelevanceinthelanguage.Asalabe
我研究了多态性,了解到它可以像下面这样进行动态方法绑定(bind)。假设类Animal是抽象类。publicclassAnimalReference{publicstaticvoidmain(Stringargs[])Animalref//setupvarforanAnimalCowaCow=newCow("Bossy");//makesspecificobjectsDogaDog=newDog("Rover");//nowreferenceeachasanAnimalref=aCow;ref.speak();ref=aDog;ref.speak();}我曾经像这样创建ArrayLis
我知道,除了使用匿名类方法,我们不能在java中实例化接口(interface)或抽象类,但它背后的原因是什么? 最佳答案 您不能实例化接口(interface)或抽象类,因为它会违背面向对象的模型。接口(interface)代表契约-接口(interface)的实现者将能够做所有这些事情,履行契约的promise。抽象类是一个类似的想法,因为它们代表一个未履行的契约(Contract),一个能够做事的promise,除了与接口(interface)不同的是,它们定义了一些功能或字段,但需要在使用前填写。简单地说,在一个好的面向对象
我大致知道:接口(interface)是一种引用类型,它类似于一个类,只能包含常量、方法签名、默认方法、静态方法和嵌套类型。方法体只存在于默认方法和静态方法中。接口(interface)无法实例化——它们只能由类实现或由其他接口(interface)扩展?但是必需接口(interface)和提供接口(interface)之间有什么区别? 最佳答案 提供和需要的接口(interface)总是引用接口(interface)的概念,表示观点。我希望下面的图表能对这个主题有所启发。在实现层面上,提供的接口(interface)是由类实现的接
好吧,我本来想问有什么区别,但之前已经有人回答了。但现在我问他们为什么要做出这些差异?(我这里说的是java,不知道其他语言是不是也一样)这两件事看起来很相似。抽象类可以定义一个方法体,而接口(interface)不能,但是可以继承多个接口(interface)。那么,为什么他们(我说的“他们”是指Sun编写Java时的意思)为什么不做一件事,您可以在其中编写一个方法体并且这种类型可以被一个类继承不止一次。无法编写方法体或扩展我没有看到的多次是否有一些优势? 最佳答案 因为允许类继承同一方法签名的多个实现会导致一个明显的问题,即在运
这在项目中可能没有主要用例,但我只是在尝试POC类型的项目,在其中我获取key代码,并使用它的值我想在屏幕上打印key名称。我想从编写switchcase中解脱出来,所以考虑通过反射(reflection)。有没有办法使用它的值获取接口(interface)名称的常量整数?KeyPressed(inti){stringpressedKeyName=getPressedKey(i);System.out.println(pressedKeyName);} 最佳答案 我能想到两个比使用反射更好的解决方案。任何体面的IDE都会为您自动填充
我使用Java有一段时间了,我一直听说诸如Cloneable、Iterable和其他X-able之类的接口(interface)。我想知道是否有所有这些的列表,更重要的是-您日常经常使用哪些?例如,我读到过Cloneable被认为写得很糟糕并且没有被广泛使用。 最佳答案 来自API文档:AccessibleStreamableAdapterActivatorOperationsCallableCloneableCloseableComparableCompilableDestroyableExternalizableFlushabl
Javadoesn'tallowthemultipleinheritancetoprotectdiamondproblem.Itusesinterfacetotakecareofthisproblem.然后说使用接口(interface)的情况interfaceA{run();}interfaceB{run();}classCimplementsA,B{run(){}//Whichinterfaceweareusing?}当我们调用类C中的方法run()时,我们如何判断我们使用的是哪个接口(interface)? 最佳答案 你不知道
我想要一个实现接口(interface)的通用对象。我的意思是如果我有一个A类classA{Ex;}我想确保x将实现特定接口(interface)(myInterface)。换句话说,类型E实现了一个接口(interface)。 最佳答案 classA{Ex;}我最初以为你在找:classAimplementsMyInterface{Ex;}orclassAimplementsMyInterface{Ex;}视情况而定。 关于java-如何让java中的GenericObject实现一个