关于继承
class A
{
 private int i;
 protected int j;
 public int m;
 
 private void f()
 {
 
 }
 
 protected void g()
 {
 
  }
 
 public void h()
 {
 
  }
}class B extends A
{
//j = 2;      // 为什么不能这样写?          为什么直接j = 2 时,出现错误了?这是什么原因啊?
private void f()          // 难道必须写个方法来对其作用吗?
{
j = 2;      
}
}

class M 
{
public static void main (String[] args)
{

}
}

解决方案 »

  1.   

    类中只能声明变量,不能执行语句。
    j = 2;  相当于放了一条赋值语句在那,执行语句只能放在函数或代码块中。你在j = 2;  外面加个大括号也是可以的。{j = 2;  }
      

  2.   

    B类中f()方法使用的是继承A类中的int j;
    在方法外
    int j=2;就可以但就不是继承A类的变量j了
      

  3.   

    这个没有什么为什么,   JAVA的语法规范.