public Person{ protectec int personID_; public Person(int personID){ personID_=personID; } } public Police: Person{ public Police(int policeID):base(policeID){ } }是这个意思吗? 还是不太明白你的问题....
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;} } } }
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); { } }
竟然是继承关系,则PersonID一定要从Police类的构造函数中得到。
public Police(string newID):base(strinewID); 应该为public Police(string newID):base(inewID)
protectec int personID_; public Person(int personID){
personID_=personID;
}
}
public Police: Person{
public Police(int policeID):base(policeID){
}
}是这个意思吗? 还是不太明白你的问题....
那么你的设计有问题了。
或者你不要使用继承,而使用组合来做。
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应该就行了
person里没有policeid,有personid,但这个personid是通过policeid得到的。to darren_zhu_NZ:
那样子类中的base(policeID)传向父类的参数就是policeID了啊,在父类的构造函数中就相当于
public Person(int personID)
{
personID_=policeID //这里就不对了吧?应该是personId啊
~~~~~~~~
}
public Person(int personID)
{
personID_=policeID //这里就不对了吧?应该是personId啊
~~~~~~~~
}
===================
这儿本来就是personID呀~
我帖是personID吧?
}base(policeID)只是调用Person的constructor. 因为Police继承了Person,所以Police也有personID_这个参数, 调用这个句语法后, Police里的personID_就是你实力化时候付的值了.
这样你就能用Police的personID_去实力化新的一个Person了(GetParent)实力化Police对Person没任何影响,不会因为实力化Police而去另外实力化一个Person.
=====================================我记得在java里好像是先调用祖宗的构造函数,接着再一层层往下调,最后才调用自己的构造函数
就是说对于Police:PersonID,PoliceID,...
{
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;}
}
}
}
{
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);
{
}
}
应该为public Police(string newID):base(inewID)
将person类与police类平行不行吗