abatido e upcast
Eu sou novo emC # (eOOP). Quando eu tenho algum código como o seguinte:
class Employee
{
// some code
}
class Manager : Employee
{
//some code
}
Questão 1: Se eu tenho outro código que faz isso:
Manager mgr = new Manager();
Employee emp = (Employee)mgr;
AquiEmployee
é umManager
, mas quando eu lanço assim para umEmployee
isso significa que eu estou upcasting isso?
Questão 2:
Quando eu tenho váriosEmployee
objetos de classe e alguns, mas nem todos eles sãoManager
Como posso abatê-los quando possível?