2014-03-04 196 views

回答

4

最终函数是一个不能在子类中重写的函数(与虚函数相反)。

所有模板都是最终的,所以接口中的任何模板都必须有一个函数体,否则你会得到一个链接器错误。

11

Virtual Functions来自:标记为final

函数不可以在派生类中重写,除非它们也private

+0

“除非它们也'private'。” - 有人在乎解释吗?你如何重写派生类中的私有最终方法? –

+0

@塞巴斯蒂安的措辞有点不正确,我猜。私有函数不是派生的,因此这里的“重写”意味着派生类中的函数具有相同的名称。这两个函数没有任何关系,所以'final'修饰符不适用。 – OdraEncoded

3

旁边什么其他的答案说:

的接口可以指定一个最终的功能,直接实现它

interface Foo{ 
    int bar(); 

    final int doublefoobar(){ 
     return bar()*2; 
    } 
} 
相关问题