Java静态函数

标签 java function static

我有一些课。

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

class A1 extends A{
    static void v(){
        System.out.println("A1");
    }
}

class B <T extends A>{
     void v(){
         T.v();
     }
}

为什么下面的代码输出“A”?

B b = new B<A1>();
b.v();

我认为代码应该输出“A1”,因为 B<A1>() .

最佳答案

您的 T.v() 是一个static 方法调用并编译为 A.v() 因为 T 删除为A 根据其类型上限。

关于Java静态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22687963/

相关文章:

java - 下载 Piktogramms 时文件太大

java - AOSP 方法名称结尾

postgresql - 函数中的参数导致问题

javascript - 使用 html5 音频中的文本链接打开/关闭 javascript 执行

c++ - 对基类和派生类使用静态容器

java - 为什么我不能使用静态变量的值?

java - 在运行时在java中创建类的实例

java - Spark - MultiMap可以转换为JAVA中的DataFrame吗

C++: vector 的子 vector 作为函数的参数

c++ - 使用静态函数初始化 static const int