2014-03-04 194 views

回答

4

最終函數是一個不能在子類中重寫的函數(與虛函數相反)。

所有模板都是最終的,所以接口中的任何模板都必須有一個函數體,否則你會得到一個鏈接器錯誤。

11

Virtual Functions來自:標記爲final

函數不可以在派生類中重寫,除非它們也private

+0

「除非它們也'private'。」 - 有人在乎解釋嗎?你如何重寫派生類中的私有最終方法? –

+0

@塞巴斯蒂安的措辭有點不正確,我猜。私有函數不是派生的,因此這裏的「重寫」意味着派生類中的函數具有相同的名稱。這兩個函數沒有任何關係,所以'final'修飾符不適用。 – OdraEncoded

3

旁邊什麼其他的答案說:

的接口可以指定一個最終的功能,直接實現它

interface Foo{ 
    int bar(); 

    final int doublefoobar(){ 
     return bar()*2; 
    } 
} 
相關問題