我有一个关于 java 中编译时多态性的问题。
方法重载是一种实现编译时多态性的方式吗?如果是,这是唯一的方法吗?小例子会对我有很大帮助。
我在网上搜索过,不同的来源给出了不同的答案,令人困惑。这就是为什么我想到在这里问它。
提前致谢。
最佳答案
我找到了这个 external source .它声明没有“编译时多态性”。您可能是指“运行时多态性”?
从本质上讲,多态性是指一个方法不是由在编译时定义的固定方法实现执行的特性,而是在运行时查找选择哪个方法实现来执行调用。
比如Java中有Object::equals,它在“Object”类中有实现。如果您创建自己的类,该类具有自己的“equals”方法实现,则在比较实例时将选择该实现,而不是“Object”类中定义的实现。
当一个方法的完整实现列表未知时,多态性非常有用,例如因为您提供了一个在程序/其他库中使用的库,这些库可以声明自己的(派生的)类来实现该方法。
关于java - 编译时多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43416756/