Java中静态函数的影子
在Java中,如果派生类静态函数的名称与基类静态函数函数隐藏(或隐藏)派生类静态函数。例如,以下Java代码打印“A.fun()”
注意:静态方法是类属性,因此如果从类名或具有类容器的对象调用静态方法,则调用该类的方法而不是对象的方法。
Java
// file name: Main.java
// Parent class
class A {
static void fun() { System.out.println("A.fun()"); }
}
// B is inheriting A
// Child class
class B extends A {
static void fun() { System.out.println("B.fun()"); }
}
// Driver Method
public class Main {
public static void main(String args[])
{
A a = new B();
a.fun(); // prints A.fun();
// B a = new B();
// a.fun(); // prints B.fun()
// the variable type decides the method
// being invoked, not the assigned object type
}
}
输出
A.fun()