public class MainJava
{
public static void main(String[] args)
{
SuperClass s=new SuperClass();
System.out.println(s.getValue());
System.out.println(s.getSum());
}
}
abstract class SuperClass
{
private int i;
public SuperClass(){i=5;}
public int getValue(){return i;}
public abstract int getSum();
}
class SubClass extends SuperClass
{
int j;
public SubClass(){this(-3);}
public SubClass(int j){this.j=j;}
public int getValue(){return j;}
public int getSum(){return super.getValue()+j;}
}
这道程序应该没错吧,,。。呵呵。怎么就运行不了了?
这句错了。应该是SuperClass s=new SubClass();
public static void main(String[] args){
//SuperClass s=new SuperClass();
//SuperClass 是抽象的;无法对其进行实例化
SuperClass s=new SubClass();
System.out.println(s.getValue());
System.out.println(s.getSum());
}
}abstract class SuperClass{
private int i;
public SuperClass(){i=5;}
public int getValue(){return i;}
public abstract int getSum();
} class SubClass extends SuperClass {
int j;
public SubClass(){this(-3);}
public SubClass(int j){this.j=j;}
public int getValue(){return j;}
public int getSum(){return super.getValue()+j;}
}
所以这里的初始化方式是SuperClass s=new SubClass();