1.class B {
2. public B() {
3. System.out.println("s1");
4. }
5.}
6.class C extends B {
7. System.out.println("s2");
}
public class A {
public static void main(String[] args) {
new C();
}
}第7行为什么编译错误,

解决方案 »

  1.   


    6.class C extends B {
    7.  System.out.println("s2");
    }

    第7行,你的语法不对。System.out.println("s2"); 应该写在方法之内。
    public void test(){
        System.out.println("s2");
    }
      

  2.   

    class C extends B {
      {
        System.out.println("s2");
      }
    }这样应该可以,放在语句块中,会在默认构造函数中被调用。
      

  3.   

    class C extends B {
      {
        System.out.println("s2");
      }
    }
    或者
    class C extends B {
       public C(){
          System.out.println("s2");
      }
    }语句只能写在代码块,或方法中
      

  4.   

    这个 如果加个大括号就是代码块了,创建对象的时候执行,如果再加上static就是静态代码块,在加载类的时候执行(只执行一次了)