java - 向上转换对静态方法有影响吗?

标签 java upcasting

为什么当我们在基类和派生类中将方法声明为静态并进行向上转换时,它会调用基类方法。

class Base
{
    static void show(){
        System.out.println("Base class....");
    }
}
class Derive extends Base
{
    static void show(){
        System.out.println("Drive class....");
    }//method hidding.....

    public static void main(String[] args) 
    {
        Base b= new Derive();
            b.show();           
    }
}

最佳答案

这里有几个问题需要提及:

  • 静态方法不会被子类继承和覆盖
  • 静态方法不需要调用实例,它们需要一个类

所以,基本上,调用 b.show(); 实际上意味着调用 Base.show();

关于java - 向上转换对静态方法有影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12124926/

相关文章:

java - 在 ListView 上显示多行文本

java - 如何让进程监视您的程序以在程序退出时重新启动它

java - 尝试使用 java 连接远程服务器中的 HBase 时出现连接问题

c++ - 类的转换(向上转换)

java - 为什么我们在 Java 中为子对象分配父引用?

java - Kotlin 中预期的属性 getter 或 setter

java - 如何在一个类中组织多个数组?

c++ - SFINAE 是否适用于功能体?

c++ - 组件系统的逆向转换

java - 显式向下转型和向上转型之间的区别