在这个documentation page of interfaces on dlang.org,它说接口必须实现最终的方法。什么是最终方法?关键字似乎没有在任何其他页面上提及。'final'关键字的含义是什么?
我发现有this page,但它似乎是来自古代D1的遗留物。
最终函数只是一个返回不可变结果的函数吗?关键字是否仍然存在?
在这个documentation page of interfaces on dlang.org,它说接口必须实现最终的方法。什么是最终方法?关键字似乎没有在任何其他页面上提及。'final'关键字的含义是什么?
我发现有this page,但它似乎是来自古代D1的遗留物。
最终函数只是一个返回不可变结果的函数吗?关键字是否仍然存在?
最终函数是一个不能在子类中重写的函数(与虚函数相反)。
所有模板都是最终的,所以接口中的任何模板都必须有一个函数体,否则你会得到一个链接器错误。
Virtual Functions来自:标记为final
函数不可以在派生类中重写,除非它们也
private
。
旁边什么其他的答案说:
的接口可以指定一个最终的功能,直接实现它
interface Foo{
int bar();
final int doublefoobar(){
return bar()*2;
}
}
“除非它们也'private'。” - 有人在乎解释吗?你如何重写派生类中的私有最终方法? –
@塞巴斯蒂安的措辞有点不正确,我猜。私有函数不是派生的,因此这里的“重写”意味着派生类中的函数具有相同的名称。这两个函数没有任何关系,所以'final'修饰符不适用。 – OdraEncoded