4
멍청한 질문..net의 기존 기본 객체에서 파생 된 객체 만들기
사람들 필드가 모두 데이터로 채워져 있고 사람 클래스에서 파생 된 직원 유형이 있고 직원과 관련된 추가 필드가 있다고 가정 해 보겠습니다. 특정 기존 인물 객체에 대한 직원 객체를 얻으려면 어떻게해야합니까? 즉, 사람 개체를 직원에게 어떻게 전달합니까? 사람이 직원으로 만든 경우
멍청한 질문..net의 기존 기본 객체에서 파생 된 객체 만들기
사람들 필드가 모두 데이터로 채워져 있고 사람 클래스에서 파생 된 직원 유형이 있고 직원과 관련된 추가 필드가 있다고 가정 해 보겠습니다. 특정 기존 인물 객체에 대한 직원 객체를 얻으려면 어떻게해야합니까? 즉, 사람 개체를 직원에게 어떻게 전달합니까? 사람이 직원으로 만든 경우
는, 그럼 그냥 캐스트 :
Person person = new Employee(); // for some reason
...
Employee emp = (Employee)person;
사람이 단 한 사람의 경우 : 당신은 할 수 없습니다; 당신은 이 인격 캡슐화 직원을 가질 수 - 또는 할 수 있습니다 사본 분야 :
class Employee { // encapsulation
private readonly Person person;
public Person {get {return person;}}
public Employee(Person person) {this.person = person;}
public Employee() : this(new Person()) {}
}
또는
class Employee : Person { // inheritance
public Employee(Person person) : base(person) {}
public Employee() {}
}
class Person {
public Person(Person template) {
this.Name = template.Name; // etc
}
public Person() {}
}
나는 많이 생각했다; 답변 해주셔서 감사합니다. –
왜 대답이 경우입니까? 저는 왜 사람을 직원에게 캐스팅 할 수 없는지 알지 못합니다. 기본 클래스 인 경우 모든 기본 클래스 필드가 있어야합니다. 나는 왜 이것이 할 수 없는지 명백한 뭔가를 놓치고 있습니까? – tim