我创建了一个类检查作为父类,并将一个方法定义为静态 还有一个 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");
}
}
给我一个解决方案,还是我在程序中做错了?
答案 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();
}
}
简单来说,实例方法被覆盖,静态方法被隐藏。
谢谢。