gpt4 book ai didi

java - 抽象类的具体子类作为原始类中的参数,没有抽象方法实现

转载 作者:行者123 更新时间:2023-12-01 12:57:33 24 4
gpt4 key购买 nike

我正在与 boofCV 合作,我发现在某个时候有一个类被定义为:

public class WrapDetectDescribeSurf
<T extends ImageSingleBand, II extends ImageSingleBand>
implements DetectDescribePoint<T,SurfFeature>
{...}

我发现ImageSingleBand是一个抽象类,至少有3个抽象方法:

protected abstract Object _getData();
public abstract ImageTypeInfo<T> getTypeInfo();
protected abstract void _setData(Object data);

据我所知,要创建抽象类的具体子类,您应该实现基类的抽象方法。我在上面的代码中找不到这些方法的任何实现。我无法理解这个实现可以放在哪里。我的意思是 TII 都是在原始类 WrapDetectDescribeSurf 的参数化内部定义的。

那么这里会发生什么?您不需要抽象方法的实现?我在这里问了一个类似的问题:Method return type contains subclass definition但我并没有完全解决我的无知。

最佳答案

ImageSingleBand 的实现必须实现抽象方法。

泛型声明 T 和 II 只是声明,它们告诉编译器 T 和 II 是扩展 ImageSingleBand 的类。换句话说:T和II将是ImageSingleBand的子类。

因此“WrapDetectDescribeSurf”的实例可能如下所示:

new WrapDetectDescribeSurf<ImageInteger, ImageFloat>();

ImageInteger 和 ImageFloat 是 ImageSingleBand 的具体子类。

更具体地说:

ImageSingleBand ( http://boofcv.org/javadoc/boofcv/struct/image/ImageSingleBand.html ) 的子类可以是

这些类实现抽象方法。

关于java - 抽象类的具体子类作为原始类中的参数,没有抽象方法实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23754577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com