首页 > 解决方案 > 是否可以使用对象调用静态方法?

问题描述

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

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();
  }
}

我得到正确的输出。

标签: static-methods

解决方案


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

来自维基百科:

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

它是静态的,因为它实际上并不使用与之关联的对象,但仍然是“与 [...] 对象关联的过程”。静态调用A.b()也可以((A) null).b()(用 Java)编写,因为该实例从未使用过,并且更明确地显示了方法解析的来源。


推荐阅读