为什么当我们在基类和派生类中将方法声明为静态并进行向上转换时,它会调用基类方法。
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/