在 Java 中,能否从子类调用超类的静态方法?


静态方法是可以无需实例化类即可调用的方法。如果要调用超类的静态方法,可以直接使用类名来调用它。

示例

 在线演示

public class Sample{
   public static void display(){
      System.out.println("This is the static method........");
   }
   public static void main(String args[]){
      Sample.display();
   }
}

输出

This is the static method........

使用实例调用静态方法也能工作,但不推荐这样做。

 在线演示

public class Sample{
   public static void display(){
      System.out.println("This is the static method........");
   }
   public static void main(String args[]){
      new Sample().display();
   }
}

输出

This is the static method........

如果在 Eclipse 中编译上述程序,将会收到以下警告:

警告

The static method display() from the type Sample should be accessed in a static way

调用超类的静态方法

可以调用超类的静态方法:

  • 使用超类的构造函数。
new SuperClass().display();
  • 直接使用超类的名称。
SuperClass.display();
  • 直接使用子类的名称。
SubClass.display();

示例

以下 Java 示例以所有三种可能的方式调用超类的静态方法:

 在线演示

class SuperClass{
   public static void display() {
      System.out.println("This is a static method of the superclass");
   }
}
public class SubClass extends SuperClass{
   public static void main(String args[]){
      //Calling static method of the superclass
      new SuperClass().display(); //superclass constructor
      SuperClass.display(); //superclass name
      SubClass.display(); //subclass name
   }
}

输出

This is a static method of the superclass
This is a static method of the superclass
This is a static method of the superclass

更新于: 2020年6月29日

3K+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告