解决方案 »

  1.   

    声明为static的方法有以下几条限制:  1、它们仅能调用其他的static 方法。  2、它们只能访问static数据。  3、static方法内不能有this,super关键字
      

  2.   

    难道楼主的结果不是打印  100??
    要不楼主再去试试!这个不是调不调用父类属性和方法的问题,楼主的属性和方法都是static,也就是静态的,静态的属性和方法是属于类的,而不是属于方法的,所以楼主调用  a.m()和输出a.x都是应该是用a这个类的方法和属性,虽然a这个类是用子类new出来的,但是a的类本身还是属于父类的,所以a.m()和a.x结果都应该是父类的方法和属性,也就是100以上纯属一个观点,谢谢!
      

  3.   

    http://bbs.csdn.net/topics/290050251
    自己看下吧
      

  4.   

    static 的变量和方法用
    类名.
    调用如:
    public static void main(String args[]){
      System.out.println(test1.x);
      test1.m();
    }如果是测试成员变量,把static去掉。ps:类名首字母大写
      

  5.   

    静态方法中不能出现this(当前对象的引用)或super(父类对象的引用),
    静态方法又叫类方法,用于维护静态属性(即类属性),类属性在类中只有一份。若想在静态方法中使用当前类的静态属性(如x),只需要写静态属性名即可,例如:
    System.out.println(x); 
    也可以写成
    System.out.println(Test2.x);若想在静态方法中使用父类的静态属性,只需要写“父类名.静态属性名”即可,例如:
    System.out.println(Test1.x);希望我的回答能帮到你~
      

  6.   

    你的x被静态修饰,静态变量随着类的加载而加载,是先于对象存在的。System.out.println("super.x="+super.x);//出错了
    这语句需要在建立对象后才能执行,而"super.x="+super.x中的x是静态,先于对象存在,在这里肯定不能用。
    2.还有引用楼上那位的一句话,static方法内不能有this,super关键字。道理也是静态修饰的成员变量或成员方法,先于对象存在,super和this关键字是有了对象才能用。当类初始化时,静态修饰的成员变量或成员方法跟随着加载,可这个时候还没建立对象,你把super和this放在那里,肯定识别不了。
    希望对你有帮助
      

  7.   

    static 是共有的,不用你new一个对象再去调用
      

  8.   

    不用super 指点类名点就可以用