一个方法用static 修饰,便是静态方法或者类方法。
静态方法不属于特定对象。
由于static方法在加载class时首先完成,比构造方法早,此时非static的属性和方法还没有完成初始化。
所以:
在static方法内部无法直接调用非static的方法,可以通过先实例化对象,再通过该对象调用非static方法,
在非static方法中可以调用static方法,通过直接调用 方法名()或者 类名.方法名()。
public void show(){
//DuotaiTest.func(new Animal());
//等同于
func(new Animal());
}
注意:main方法也是static方法。
import javax.xml.catalog.Catalog; public class DuotaiTest { public static void main(String[] args){ //func(new Animal()); //func(new Cat()); //Error:(3, 9) java: 无法从静态上下文中引用非静态 方法 func(Animal) DuotaiTest t=new DuotaiTest(); /* t.func(new Animal()); System.out.println(&