参考这个问题:Hide virtual function with non-virtual override
这个问题:覆盖非虚拟函数
覆盖虚函数的函数也是虚函数,即使它没有显式声明为虚函数。
我的技术问题是:是否可以使该覆盖函数成为非虚拟的(并将其应用于层次结构中较低的类)?换句话说,我可以关闭“虚拟化”吗?
显然,我们可以用虚函数覆盖非虚函数。我们可以做相反的事情,即用非虚函数覆盖虚函数吗?
换句话说,为什么Python允许与内置类型名称相同的变量名,如int,float,list等?(相比之下,C++内置类型名称都是保留的).考虑这个例子
# int = 1
i = 2
if type(i) == int:
print 'Is int'
else:
print 'Not int'
Run Code Online (Sandbox Code Playgroud)
输出为"Is int ".但是,如果我取消注释第一行,则输出将为" Not int ".显然我的"int"已经覆盖了内置类型int.也就是说,在我看来,有潜在危险.