Why does calling the PrintFullName() method require casting it as ((Employee)PTE).PrintFullName() ? - C#