public class Example{

public static void main(String[] args) {

}

class Base{
String var="Basevar";
static StrinstaticVar="StaticBaseVar"; //字段 staticVar 不能声明为“静态”;只能在静态或顶级类型中才能声明静态字段

void baseMethod(){
System.out.println("Base method");
}

static void staticMethod(){  //方法 staticMethod 不能声明为“静态”;只能在静态类型或顶级类型中才能声明静态方法
System.out.println("static base method");
}
}}

解决方案 »

  1.   

    一个字乱static StrinstaticVar="StaticBaseVar";
      

  2.   

    你把
    class Base{
    String var="Basevar";
    static StrinstaticVar="StaticBaseVar"; //字段 staticVar 不能声明为“静态”;只能在静态或顶级类型中才能声明静态字段void baseMethod(){
    System.out.println("Base method");
    }static void staticMethod(){  //方法 staticMethod 不能声明为“静态”;只能在静态类型或顶级类型中才能声明静态方法
    System.out.println("static base method");
    }

    拿到public class Example外面去。
    现在是在内部类中了。
      

  3.   

    答:这是JAVA语言的规定.通常认为:非static型的内部类如:class Base{...},是在当外部类class Example的对象已存在时才能使用.而一个static型的成员(数据成员与方法成员)是与 对象是否已存在 是无关的.是可以直接使用的.因而  规定不能定义static. 
     一句话:这只是一项规定.上边只是这种规定的可能的一种解释.
      

  4.   

    非static的内部类不允许有static成员