无法识别Java程序中的特定引用

时间:2014-12-09 15:26:55

标签: java class subclass superclass suffix-tree

public CompactSuffixTree(SimpleSuffixTree simpleSuffixTree) 
{  
    super(simpleSuffixTree.text);
    super.root = compactNodes(simpleSuffixTree.root, 0);
}

上面的代码是后缀树的java实现的一部分。

此处CompactSuffixTree扩展了AbstractSuffixTree类,其中包含属性“text”。

simpleSuffixTree类还扩展了AbstractSuffixTree类。

“root”是AbstractSuffixTreeNode类中的属性。

任何人都可以解释一下代码“super(simpleSuffixTree.text);”意味着在这样的背景下?

注意:simpleSuffixTree类中没有属性“text”,这是我的主要混淆点。强烈的文字

3 个答案:

答案 0 :(得分:2)

super(simpleSuffixTree.text);是对超类AbstractSuffixTree的构造函数的调用。 simpleSuffixTree.text被传递给超类的构造函数,它可能用于初始化AbstractSuffixTree的“text”属性。

答案 1 :(得分:1)

这意味着正在调用父构造函数。在这种情况下,它会导致调用AbstractSuffixTree( String text )函数。

答案 2 :(得分:0)

子类构造函数 - super关键字用于调用超类的构造函数,以下是调用超类CompactSuffixTree的{​​{1}}(子类)构造函数构造函数然后在AbstractSuffixTree类中初始化root属性。

此关键字 - 您可以使用此方法从实例方法或构造函数中引用当前对象的任何成员。或者您可以使用此关键字引用超级公众或受保护的成员,我建议您使用此关键字而不是AbstractSuffixTree