Java通用方法继承和覆盖规则

Java通用方法继承和覆盖规则,第1张

Java通用方法继承和覆盖规则

我们在这里拥有两种不同的方法,每种方法都有各自的类型参数

public abstract <T extends AnotherClass> void getAndParse(Args... args);

这是一种类型参数为T且由界定的方法

AnotherClass
,这意味着的每个子类型
AnotherClass
都可以用作类型参数。

public <SpecificClass> void getAndParse(Args... args)

这是一种方法,其类型参数名为

SpecificClass
,以限制
Object
(这意味着每种类型都可以作为类型参数)。你真的想要这个吗?

是在内部使用type参数

Args
吗?我认为问题就在那里。


的含义

public abstract <T extends AnotherClass> void getAndParse(T... args);

是方法的 调用者
可以决定他要使用哪种类型的参数来调用方法,只要这是的子类型

AnotherClass
。这意味着实际上可以使用任何类型的对象调用该方法
AnotherClass

由于调用者可以决定类型参数,因此您不能在子类中将参数类型缩小到

SpecificClass
-这不是方法的实现,而是同名的另一个方法(重载)。

也许您想要这样的东西:

public abstract class GetAndParse<T extends AnotherClass> {  public SomeClass var;  public abstract void getAndParse(T... args);}public class Implementor extends GetAndParse<SpecificClass> {  // some field declarations  // some method declarations  @Override  public void getAndParse(SpecificClass... args) {    // method body making use of args  }}

现在,该

getAndParse
方法实现了父类的方法。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5506032.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存