我正在研究静态和动态多态性并获得了这些链接:
http://www.coderanch.com/t/379004/java/java/static-polymorphism-dynamic-polymorphism
http://javarevisited.blogspot.in/2011/08/what-is-polymorphism-in-java-example.html
在所有这些链接中,都说重载是多态性的一个例子,然后我又遇到了两个地方说重载与多态性无关,链接是:
Is Method Overloading considered polymorphism?
Head First Java 第 2 版第 7 章(继承与多态)上一主题:重载方法 。
现在我无法弄清楚它是否是一种多态性,如果不是的话,OOP 中是否有所谓的静态多态性?
最佳答案
有时,方法重载确实被称为“静态多态性”的一个例子。这种指定确实有些武断,但可以对其进行较弱的辩护。
静态多态的概念确实存在,而且不限于OOP。当基于编译时类型信息实现多态行为时,多态性(以不同形式呈现相同行为的能力)可以是静态的。这种多态性最常见的例子是 C++ 的模板:所有调用都是静态解析的,但模板的行为会根据其类型参数的静态类型进行更改。
重载也可以被认为是基于对象的静态类型选择行为的原始形式。然而,这种重载的观点无助于理解概念,也让新手更难理解“真正的”(即动态的)多态性。这就是为什么“静态多态性”这个术语在 Java 书籍中并不常见。
关于java - 方法重载是一种多态性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20784493/