草庐IT

scripting-interface

全部标签

java - 继承与接口(interface)

我一直在尝试理解涉及接口(interface)时的继承。我想知道子类是如何创建的,如果它们遵循以下内容:例如,假设我有:实现接口(interface)I的父类(superclass)和几个扩展父类(superclass)A的子类我的问题我是否必须在所有扩展A的子类中提供接口(interface)方法“q和r”的实现?如果我不在子类中提供接口(interface)的实现,我是否必须将该子类设为抽象类?任何子类都可以实现I吗?例如C类扩展A实现I,这可能吗?即使它已经扩展了实现I的父类(superclass)?假设我没有从接口(interface)I提供方法r的实现,那么我将不得不创建父类

java - 实现相同接口(interface)的类之间的关系

我几乎是java初学者,我来stackoverflow论坛问一个简单的问题。我已经在SO上检查过类似的问题,但没有找到所需的答案,链接:Isthereanyrelationbetweentheclassthatimplementsinterfaceandthatinterface?我们知道如果Cat扩展了Animal,这里就存在关系。所以猫是动物(但不一定是其他动物。动物也是狗..)。我们将这种关系称为“is-a”——继承。如果我们有另外两个类:Girl和Candy并且如果类Girl持有Candy的实例,那么我们将这种关系命名为“has-a”-composition,因为我们可以说Gi

java - Java 是否通过具有单个实现者标记为最终的接口(interface)来优化方法调用?

如果我有一个类的引用并在其上调用一个方法,并且该类或方法是最终的,我的理解是编译器或JVM会用更便宜的静态调度替换动态调度,因为它可以确定将调用哪个版本。但是,如果我有一个接口(interface)的引用,并且该接口(interface)当前只有一个实现者,并且该实现者是最终的或者该实现者中的方法是最终的,JVM可以在运行时计算出来并优化这些吗?电话? 最佳答案 (在此处插入Knuth关于优化的引述。)参见WikisHome>HotSpotInternalsforOpenJDK>PerformanceTechniques.Metho

java - 泛型与接口(interface)

我从Java1.4(以前的公司)过渡到Java1.6(新公司)。我观察到,在1.4中,大多数专有框架都是使用接口(interface)和模板模式定义的,而在1.6中,大多数框架都是围绕泛型定义的。虽然我仍在尝试掌握泛型,但我的问题是-这是一种正确的设计方法吗?接口(interface)使您的设计更加灵活/解耦。而泛型,实现类型安全并强制您传递特定类型的类。并没有真正帮助您的代码解耦。这个对吗?一个例子-publicMyWizardextendsSignupWizard{}相反,设计会更灵活,如果它是..publicinterfaceWizardable{publicSignableSe

java - 为什么不允许接口(interface)作为注解成员?

考虑这段代码:@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public@interfaceBar{Foofoo()defaultFooImpl.FooConstant;}编译器错误:annotationvaluenotofanallowabletype如果我将Foo替换为FooImpl,代码将被接受。这种行为的原因是什么? 最佳答案 IfIreplaceFoowithFooImplthecodeisaccepted.如果编译成功,我会感到非常惊讶,除非F

java - 如何实现通用接口(interface)的方法?

我有这个界面:publicinterfaceParsableDTO{publicTparse(ResultSetrs)throwsSQLException;}在某种dto类中实现,在另一个类中实现此方法:public>ListgetParsableDTOs(Stringtable,Classdto_class){Listrtn_lst=newArrayList();ResultSetrs=doQueryWithReturn(StringQueryComposer.createLikeSelectQuery(table,null,null,null,true));try{while(rs

java - Jackson 仅序列化接口(interface)方法

我有一个对象A和一些方法ma,mb,mc并且这个对象实现了一个接口(interface)B只有ma和mb。当我序列化B时,我希望只有ma和mb作为json响应,但我也得到mc.我想自动化此行为,以便我序列化的所有类都基于接口(interface)而不是实现进行序列化。我应该怎么做?例子:publicinterfaceInterf{publicbooleanisNo();publicintgetCountI();publiclonggetLonGuis();}实现:publicclassImplimplementsInterf{privatefinalStringpatata="Pata

java - 对JAVA接口(interface)感到困惑

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whatdoesitmeanto“programtoaninterface”?InterfacevsAbstractClass(generalOO)初学JAVA,对接口(interface)一头雾水。查了很多资料还是不清楚。当我尝试查找有关接口(interface)的一些资料时,我看到很多人都在谈论接口(interface)和抽象类之间的关系。但我什至不知道他们为什么将这两者进行对比。因为我觉得抽象类是用来告诉别人你不能创建这个抽象类的对象,如果你想,你必须修改抽象类。这是关于继承的东西,对吧?但是我不知道i

具有非 SAM 接口(interface)的 lambda 的 Java 习惯用法

在Java中,可以使用lambda而不是匿名类来优雅地实现具有单个抽象方法的接口(interface)(即SAM类型或功能接口(interface))://SAMActionListenerwithanonymousimplementationbutton.addActionListener(newActionListener(){publicvoidactionPerformed(Evente){System.out.println("buttonviaanon!");}});可以替换为://SAMActionListenerwithlambdaimplementationbutto

java - 当接口(interface) A 在其方法签名中定义接口(interface) B 时

...如何限制A的实现在方法签名中使用B的特定实现?用例这是一个Unit接口(interface)和两个实现它的枚举:publicinterfaceUnit{...}publicenumForceUnitimplementsUnit{...}publicenumMassUnitimplementsUnit{...}Property接口(interface)使用:publicinterfaceProperty{publicvoidsetUnit(Unitunit);//forexample}publicclassForceimplementsProperty{...}publicclas