我参加过很多面试,面试官总是问“你知道虚拟功能吗?” 我总是想知道为什么有经验的程序员/开发人员使用虚拟功能。据我所知.. 并非所有函数都可以是虚拟的,只有属于任何类/结构的那些函数可以是虚拟的。
所以我认为“函数是超集,方法是子集。并非所有函数都可以是方法,但所有方法都是函数。因此使用“虚拟方法”而不是“虚拟函数”是合适的。
有人可以解释一下,为什么大多数有经验的程序员甚至技术书籍都使用“虚拟函数”而不是“虚拟方法”?
我参加过很多面试,面试官总是问“你知道虚拟功能吗?” 我总是想知道为什么有经验的程序员/开发人员使用虚拟功能。据我所知.. 并非所有函数都可以是虚拟的,只有属于任何类/结构的那些函数可以是虚拟的。
所以我认为“函数是超集,方法是子集。并非所有函数都可以是方法,但所有方法都是函数。因此使用“虚拟方法”而不是“虚拟函数”是合适的。
有人可以解释一下,为什么大多数有经验的程序员甚至技术书籍都使用“虚拟函数”而不是“虚拟方法”?
从技术上讲,方法是属于类的,而函数是不属于类的,但就像其他如此普遍和常见的东西一样,人们最终会混淆术语,最终“函数”和“方法”都可以指一件事或另一件事。这几乎就是您问题的答案......最后,术语是由人们如何使用它来定义的,而不是由最初的预期含义来定义。
也许这个链接可以帮助你: -
http://www.dotnet-tricks.com/Tutorial/oops/4a0J170612-Difference-between-function-and-method.html
是的,从语言或逻辑上讲,函数不是类的一部分,但方法是类的成员。
或者,更简单地说,方法本身并不存在,它们属于类。但功能有其自身的存在。
我希望这也能澄清你的疑虑。