在這個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