przygnębiony i upcast

Jestem nowyDO# (iOOP). Kiedy mam kod podobny do następującego:

class Employee
{
    // some code
}


class Manager : Employee
{
    //some code
}

Pytanie 1: Jeśli mam inny kod, który to robi:

   Manager mgr = new Manager();
   Employee emp = (Employee)mgr;

TutajEmployee jestManager, ale kiedy rzucę to w ten sposóbEmployee to znaczy, że to robię?

pytanie 2:

Kiedy mam kilkaEmployee obiekty klasowe i niektóre, ale nie wszystkie, sąManager, jak mogę je sprowadzić tam, gdzie to możliwe?

questionAnswers(5)

yourAnswerToTheQuestion