Down cast happens when casting to subclass or child class.
Down cast needs an explicit cast.
using System;
class Person
{
public string name;
}
class Employee : Person
{
public string companyName;
}
class Program
{
static void Main(string[] args)
{
Person p = new Employee();
Employee e = (Employee)p;
}
}