但现在类的构造流程是Person类析构函数,Police类析构函数  ???
---〉
不懂你是什么意思

解决方案 »

  1.   

    错了,是Person类构造函数,Police类构造函数。意思就是我的person类构造函数中的参数要通过police类来得到,但现在police是person的子类,构造的时候在person后面,那么person构造函数中的这个参数如何得到。
      

  2.   

    public Person{
     protectec int personID_; public Person(int personID){
       personID_=personID;
     }
    }
    public Police: Person{
     public Police(int policeID):base(policeID){
     }
    }是这个意思吗? 还是不太明白你的问题....
      

  3.   

    person类里面还需要PoliceID么?
    那么你的设计有问题了。
    或者你不要使用继承,而使用组合来做。
      

  4.   

    懂了public Person{
     protectec int personID_; public Person(int personID){
       personID_=personID;
     }
     
     public PersonID{
       get{return personID_;}
       set{personID_=value;}
     }
    }public Police:Person{
     
     public Police(int policeID):base(policeID){
     } public Person GetParent(){
      return new Person(personID_);
     }
    }调用GetParent应该就行了
      

  5.   

    to jiezhi:
    person里没有policeid,有personid,但这个personid是通过policeid得到的。to darren_zhu_NZ:
    那样子类中的base(policeID)传向父类的参数就是policeID了啊,在父类的构造函数中就相当于
    public Person(int personID)
    {
      personID_=policeID  //这里就不对了吧?应该是personId啊
                ~~~~~~~~
    }
      

  6.   

    设计有问题,应搞清楚继承的关系,如果person只是实现一些统一的方法,可以考虑将其定义成一个接口,调用时将Police向上转换
      

  7.   

    那样子类中的base(policeID)传向父类的参数就是policeID了啊,在父类的构造函数中就相当于
    public Person(int personID)
    {
      personID_=policeID  //这里就不对了吧?应该是personId啊
                ~~~~~~~~
    }
    ===================
    这儿本来就是personID呀~
    我帖是personID吧?
      

  8.   

    public Police(int policeID):base(policeID){
     }base(policeID)只是调用Person的constructor. 因为Police继承了Person,所以Police也有personID_这个参数, 调用这个句语法后, Police里的personID_就是你实力化时候付的值了.
    这样你就能用Police的personID_去实力化新的一个Person了(GetParent)实力化Police对Person没任何影响,不会因为实力化Police而去另外实力化一个Person.
      

  9.   

    实例化子类的时候,肯定是子类构造函数先执行
    =====================================我记得在java里好像是先调用祖宗的构造函数,接着再一层层往下调,最后才调用自己的构造函数
      

  10.   

    父类Person有成员PersonID,那子类Police继承过来了这个PersonID了,你还跑到Person里面找什么呢?
    就是说对于Police:PersonID,PoliceID,...
      

  11.   

    person类里面不需要PoliceID 完全是没必要的
      

  12.   

    public Person

      private string personID;
      public string PersonID
      {
        get{return personID;}
        set{personID = value;}  }
    }
    public Police : Person
    {
       private string policeID;
       public string PoliceID
      {
        get{return base.PersonID;}
        set{base.PersonID = value;}
      }
    }
    }
      

  13.   

    public class Person

      private string personID;
      public string PersonID
      {
        get{return this.personID;}
        set{this.personID = value;}
      }
      public Persoin(string newID)
      {
        this.personID = newID;
      }
    }
    public class Police : Person
    {
       public string PoliceID
       {
        get{return base.PersonID;}
        set{base.PersonID = value;}
       }
       public Police(string newID):base(strinewID);
       {
       }
    }
      

  14.   

    竟然是继承关系,则PersonID一定要从Police类的构造函数中得到。
      

  15.   

    public Police(string newID):base(strinewID);
    应该为public Police(string newID):base(inewID)
      

  16.   

    非得继承吗
    将person类与police类平行不行吗