你应该学会看异常按照你的写法 运行的时候会抛错误 Error
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Cannot make a static reference to the non-static field s
不能在静态方法里访问非静态的s
将s改为静态后又抛出另一个Error
Exception in thread "main" java.lang.Error: Unresolved compilation problem: //未解决的编译问题
Implicit super constructor D() is undefined for default constructor. Must define an explicit constructor //意思就是你没有明确定义继承父类的构造方法
所以子类必须覆写父类的构造函数——因为子类对象在建立的时候需要查看父类是如何对这些数据初始化的
class O extends D {
public O(String s) {
super(s);
}
static String s="D";
public static void main(String[] args) {
// TODO Auto-generated method stub
O o=new O("");
System.out.println(s);
}
}
这样就正确了
|