当前位置:编程学习 > JAVA >>

下面这段程序为什么要这样实现啊?

关于继承
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)
{

}
}
--------------------编程问答-------------------- 你怎么不把所有的代码都直接写在类里 --------------------编程问答-------------------- 类中只能声明变量,不能执行语句。
j = 2;  相当于放了一条赋值语句在那,执行语句只能放在函数或代码块中。

你在j = 2;  外面加个大括号也是可以的。{j = 2;  } --------------------编程问答-------------------- 语句不能直接写在类下面。 --------------------编程问答-------------------- 这不是继承的问题,j=2是赋值语句,不能写在类 --------------------编程问答-------------------- B类中f()方法使用的是继承A类中的int j;
在方法外
int j=2;就可以但就不是继承A类的变量j了 --------------------编程问答-------------------- 这个没有什么为什么,   JAVA的语法规范.  
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,