使用类对象调用静态方法

时间:2014-03-08 06:15:50

标签: java static-methods

我创建了一个类检查作为父类,并将一个方法定义为静态 还有一个 Check1 扩展检查类现在我创建了一个对象 Check1 并使用此对象调用Check类方法并正常工作。 怎么可能呢?因为类的静态方法只能使用类的名称。

检查课程:

public class Check
{
  static void main(int a[])
  {
    for(int i=0; i<a.length; i++)
    {
        System.out.print(a[i] + "\t");
    }   System.out.println();
  }
}

Check1课程:

public class Check1 extends Check
 {

public static void main(String a[])
{
    Check1 ob=new Check1();
    int a1[]={1,2,3,4};
    ob.main(a1);                    // working
    main(a1);                      // working
    Check.main(a1);                 // working
    Check1.main(a1);                // working
    System.out.println("Main");
}
}

给我一​​个解决方案,还是我在程序中做错了?

2 个答案:

答案 0 :(得分:0)

static方法就像任何其他方法一样被继承,并且可以像任何其他方法一样被覆盖。 static只是暗示该方法不是绑定到类的实例,而是绑定到类本身。

答案 1 :(得分:0)

我希望当你看到这个例子时,你会理解静态

public class Animal
{
    public static void hide() 
    {
        System.out.format("The hide method in Animal.%n");
    }
    public void override()
    {
        System.out.format("The override method in Animal.%n");
    }
}

public class Dog extends Animal
{
    public static void hide() 
    {
        System.out.format("The hide method in Animal.%n");
    }
    public void override()
    {
        System.out.format("The override method in Animal.%n");
    }
   public static void main(String args[])
   {
     Animal a = new Dog();
     a.hide();
     a.override();
   }
}

简单来说,实例方法被覆盖,静态方法被隐藏。

谢谢。