Upcasting: Creating a base (Parent) class reference from a subclass (Child) reference. Upcasting is performed explicitly (No need of casting)
Downcasting: Creating a subclass (Child) class reference from a base (Parent) class reference
Is and As Keyword
The “Is” keyword is used to check if an object is of a particular type
The “As” keyword is used to convert from one type to another in a safe way without raising any Exception. If casting is not possible it will return null