
284
LESSON 23 Defining Classes
from Employee. In addition to whatever features the Employee class provides, Manager adds new
DepartmentName and DirectReports properties.
class Employee : Person
{
public string DepartmentName { get; set; }
public List<Employee> DirectReports = new List<Employee>();
}
Note that C# only supports single inheritance. That means a class can inherit
from at most one parent class. For example, if you define a
House class and a
Boat class, you cannot make a HouseBoat class that inherits from both.
POLYMORPHISM
Polymorphism is a rather confusing concept that basically means a program can treat an object as if
it were any class that it inherits. Another way to think of this is that polymorphism lets you treat an
object as if it were any of the classes that it is. For example, an
Employee is a kind of Person so you
should be able to treat an
Employee as a Person.
Note that the reverse is not true. A
Person is not necessarily an Employee (it could be a Customer
or some other unrelated person).
For a more detailed example, suppose you make the
Person, Employee, and Manager classes
and they inherit from each other in the natural progression:
Employee inherits from Person and
Manager inherits from Employee.
Now suppose you write a method that takes a
Person as a parameter. Employee inherits from
Person so you should be able to pass an Employee into this method and the ...