public CompactSuffixTree(SimpleSuffixTree simpleSuffixTree)
{
super(simpleSuffixTree.text);
super.root = compactNodes(simpleSuffixTree.root, 0);
}
上面的代码是后缀树的java实现的一部分。
此处CompactSuffixTree
扩展了AbstractSuffixTree
类,其中包含属性“text”。
simpleSuffixTree
类还扩展了AbstractSuffixTree
类。
“root”是AbstractSuffixTree
类Node
类中的属性。
任何人都可以解释一下代码“super(simpleSuffixTree.text);”意味着在这样的背景下?
注意:simpleSuffixTree
类中没有属性“text”,这是我的主要混淆点。强烈的文字
答案 0 :(得分:2)
super(simpleSuffixTree.text);
是对超类AbstractSuffixTree
的构造函数的调用。 simpleSuffixTree.text
被传递给超类的构造函数,它可能用于初始化AbstractSuffixTree
的“text”属性。
答案 1 :(得分:1)
这意味着正在调用父构造函数。在这种情况下,它会导致调用AbstractSuffixTree( String text )
函数。
答案 2 :(得分:0)
子类构造函数 - super
关键字用于调用超类的构造函数,以下是调用超类CompactSuffixTree
的{{1}}(子类)构造函数构造函数然后在AbstractSuffixTree
类中初始化root属性。
此关键字 - 您可以使用此方法从实例方法或构造函数中引用当前对象的任何成员。或者您可以使用此关键字引用超级公众或受保护的成员,我建议您使用此关键字而不是AbstractSuffixTree
。