答:直接访问不可以,但通过在静态方法的内部创建对象(或形式参数来传递的对象)来间接访问是完全可以的.
代码示例:
public class test5 {
public static void main(String[] args) {
// c2.c2_func1();
c2.c2_func2(new c2());
}
}
interface I1 {
void I1_func1();
}
class c2 implements I1{
public void I1_func1() {System.out.println("I1_func1()");}
// static void c2_func1() {I1_func1();} /* complier error */
static void c2_func2(I1 o) {o.I1_func1();} /* pass! */
}
还有就是main其实是个static方法,在里面调用非静态方法可以用过新建对象然后用对象来调用。