Polymorphism works the other way around - derived classes are also base classes. Also note that you still can't assign a Female to a Human. When using polymorphism, you must work with either pointers or references. It's fine to assign a Female* to a Human*.