以下を使用して
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Employee : Person
{
public string RoleName { get; set; }
}
の新しいインスタンスを作成してもEmployee
、変数宣言が実際Person
には である場合、発生するのは への暗黙のキャストだけです。Person
つまり、 のメソッドやプロパティのいずれにもアクセスできませんEmployee
。Employee
のコンストラクターがのコンストラクターに影響を与える場合、これは役立つと思いますがPerson
、 では何も気にしませんがEmployee
、お勧めしません。代わりに、より明確なポリモーフィズムを利用する方法を構築することをお勧めします。これは、派生オブジェクトがパラメーターとして使用される場合で、実際にはパラメーターの型がそのベースの 1 つの型である場合などです。
public void DoSomething(Employee employee)
{
// here we do something with an employee
// ...
string fullName = GetTheirFullName(employee);
}
public string GetTheirFullName(Person person)
{
return (person.FirstName + " " + person.LastName).Trim();
}