我刚开始学习 C#(以及 OOP)。当我有以下类似代码时:
class Employee
{
// some code
}
class Manager : Employee
{
//some code
}
问题 1:如果我有其他代码执行以下操作:
Manager mgr = new Manager();
Employee emp = (Employee)mgr;
这里的Employee
是一个Manager
,但是当我将其强制转换为Employee
时,这意味着我在进行向上转换?
问题2:
当我有多个Employee
类对象,并且其中一些但不是全部是Manager
, 如何在可能的情况下将它们向下转换?
Employee emp = mgr;
就足够了。 - kiss my armpit