可以使用对象调用静态方法吗?

时间:2019-06-05 16:32:28

标签: static-methods

这可能是一个基本问题,但请任何人回答。 我们知道静态成员属于类,因此可以使用类名来调用它们。但是在下面的示例中,我们使用引用调用了静态方法。

class One
{
  static void show()
  {
    System.out.println("one");
  }
}

class Two extends One
{
  static void show()
  {
    System.out.println("Two");
  }
}

public class RuntimePoly
{
  public static void main(String[] args) 
  {
    One o=new Two();
    o.show();
  }
}

我得到正确的输出。

1 个答案:

答案 0 :(得分:0)

静态方法仍然是一种方法。

来自维基百科:

  

面向对象编程(OOP)中的方法是与消息和对象相关联的过程

从某种意义上说,它是静态的,实际上它并没有使用与之关联的对象,但是仍然是“与一个对象关联的过程”。静态调用A.b()也可以写为((A) null).b()(在Java中),因为实例从未使用过,并且更清晰地显示了该方法的解析位置。