栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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
方法实现了父类的方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/514972.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号