在同一个类中:
对于静态方法,其他的静态或非静态方法都可以直接调用它。
而对于非静态方法,其他的非静态方法是可以直接调用它的。但是其他静态方法只有通过对象才能调用它。
静态方法不能被非静态方法覆盖。
public class Test2 {
public static void s1(){
System.out.println("s1");
}
public void say1(){
System.out.println("say1");
}
public void say(){
s1();
say1(); //调用say1方法
}
public static void main(String [] args ) {
s1();
Test2 t = new Test2();
t.say();
}
}
不同的类之间,无论调用方法是非静态还是静态,如果被调用的方法是:
静态方法,则通过类名与对象都可以调(但通过对象的方式不建议使用,因为它属于非静态调用的方式)
非静态方法,则只能通过对象才可以调用它
public class CallTest2 {
public static void s(){
System.out.println("s1");
}
public void say(){
Test2 t2 = new Test2();//调用Test里面的方法
t2.say();
t2.s1();
Test2.s1();
}
public static void main(String [] args ) {
CallTest2 t = new CallTest2();
t.say();
}
}
本文详细解析了Java中静态与非静态方法的调用规则,包括在同一类和不同类之间的调用方式,以及静态方法与非静态方法的区别和调用限制。

被折叠的 条评论
为什么被折叠?



