我参考了一些java教程,发现java有两种类型的多态性。
polymorphism)
)
一些学习参考被提到“如果您重载了中的静态方法,这就是编译时多态性的例子”。还有一些人提到“方法重载是编译时多态的一个例子”.
我想知道的是,如果只有静态方法重载或每个方法重载都是java编译时多态。
因为在阅读第一点时,我感到为什么没有特别提到静态方法,为什么没有提到实例方法和构造函数。
谢谢
发布于 2020-02-05 16:05:06
在Java中,选择要调用的重载中的哪个总是在编译时进行的。这适用于static方法、实例方法以及构造函数。
请注意,这两种说法并不矛盾。第一个问题是,“如果您重载静态方法…”,但不排除其他示例。同样,另一条语句“方法重载是编译时多态的示例”更广泛,仍然正确,而没有提到构造函数。只要这些声明没有声称已经命名了所有现有的例子,它们就是正确的。
不过,在实例方法中,除了编译时多态之外,所选的重载在被重写时也会受到运行时多态的影响。拥有既重载又重写的方法,很容易导致错误,因此应该小心使用或避免使用。
https://stackoverflow.com/questions/60079320
复制相似问题