問題 1:
package mypack1;
 public class Factor{
          protected Fathor(){
          }
 }package mypack2;
  public class Child extends Factor{
         Child(){
             Factor f = new new Factor();--此句有錯?如何解釋?(當然沒必要這樣寫,只是想知道為什么?)
        }
  }問題 2:
package mypack1;
 public class Factor{
          Fathor(){
          }
 }package mypack2;
  public class Child extends Factor{
         Child(){//此處有錯,如何解釋?
             
        }
  }

解决方案 »

  1.   

    你Factor类中的构造函数名写错了吧 是Factor()不是Fathor();new Factor() 指调用Factor类中的构造函数方法,返回的是一个对象的引用,
    你在在它面前在加个new 算什么 ,肯定不通过编译的啦
     
    还有你父类编译完毕后.clss是放到包mypack1里的,你这样肯定不行。
    子类继承要用import mypack1.Factor 导入父类才能顺利通过编译。
      

  2.   

    public class Child extends Factor{
             Child(){
                 Factor f = new Factor();--此句有錯?如何解釋?(當然沒必要這樣寫,只是想知道為什么?)
            }
      }import mypack1.Factor
      

  3.   

    package mypack2;
      public class Child extends Factor{
             Child(){
                 Factor f = new new Factor();--此句有錯?如何解釋?(當然沒必要這樣寫,只是想知道為什么?)
            }
      }是不是需要方法的返回类型呢???
      

  4.   

    直接用Super()不好吗??
    不好意思!只是说出自己的看法!可能回答不对!!
    请不要介意
      

  5.   

    这里其实涉及到了递归的
    所以当必须这样用的时候,就需要系统提供的Super()
      

  6.   

    package mypack1;
     public class Factor{
              Fathor(){
              }
     }
    Factor类中的Fathor()方法怎么没有返回值类型?
    或者是楼主手误,构造函数名写错了??
      

  7.   

    extends Factor说明Factor和Child应该在同一包中,实际不然.
    因为你要继承别的包中的类,就要
    import mypack1.*;
    或者
    extends.mypack1.Factor
      

  8.   

    ps,排除你的低级书写错误 回答如下问题1
    Factor f = new Factor();
    为啥错!
    答:是应为Factor的构造函数是protected,包外不可见(包外可继承,但不能new)问题2
    Child(){}
    为啥错
    答 :Fathor(){}这个构造函数是friendly,对于其他包是不可见得
         也就是说包外不能继承 问了问题不给分 是可耻的