class Parents{
public int  count(){
return 0;
}
}
public class Test extends Parents {
private int i;
// public static void main(String[] args){
// Parents p=new Test();
// p.count();
//// System.out.print(i);
// }
public int  count(){
return i/9;
}
}
求解这个程序,编译是否能够通过,为什么?编译java

解决方案 »

  1.   

    // public static void main(String[] args){
    这些注释都不算的话。System.out.print(i);
    这一句是有问题的,无法访问私有成员,其他都应能通过。
      

  2.   

    怎么不能编译通过呢?
    你重写了父类中的count方法
    在Test类中,i的默认值是0
    Parents p=new Test();
    这段实际上是向上转型,但在调用时是调用子类的方法,返回0呀
      

  3.   

    有些错误会在编译时就被编译器发现,而有些错误则隐藏得很很深。比如你定义一个除法的方法:
    int fun(int a,int b){return a/b;};这个方法的参数,需要你自己传进去。
    当你传进去的b为0的时候,那么就会发生运行时异常。
    你不能指望编译时就能够把这种错误找出来。(可以先理解为运行时错误发生的原因,不是代码的问题,而是用户在传递数据时的问题。)
      

  4.   

    编译能通过 你只重写了父类的方法 这为什么不能通过呢  还有 这句 System.out.print(i); 被注释了啊 怎么会编译啊 所以 没错