java - 方法是否隐藏了多态性的一种形式?

标签 java polymorphism overriding

多态性是采用多种形式的能力。方法覆盖是运行时多态性。

我的问题是:

  1. Java 有静态多态吗?

  2. 方法隐藏可以被认为是多态的一种形式吗?

在此question's answer ,据说静态方法不是多态的。这是什么原因?

最佳答案

如果我们运行这个测试

class A {
    static void x() {
        System.out.println("A");
    }
}

class B extends A {
    static void x() {
        System.out.println("B");
    }
}

class Test {
    public static void main(String[] args) throws Exception {
        A a = new B();
        a.x();
    }
}

它将打印 A。如果方法 x() 是多态的,它将打印 B。

关于java - 方法是否隐藏了多态性的一种形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28711259/

相关文章:

c# - 为什么将基类设置为等于派生类型仅在设置范围内起作用?

php - 从公共(public)基函数访问类层次结构中的私有(private)属性

java - 我想扩展ArrayList来实现但无法访问element Data private var

java - 当我启动 Spring 服务器时,在浏览器或 postman 中访问 url 时出现 404

java - 使用 Mina 模拟 XMPP 服务器仅在部分时间有效

java - Hibernate集映射到 'sql select'表

java - 覆盖指定类中的方法

java - 如何在 Java 中检测字符串是否包含西里尔字母?

java - 静态绑定(bind)和动态绑定(bind)

java - 定义/设置 JComboBox BasicArrowButton 禁用时的颜色