¿Cómo pasar una Lista <Niño> a un método con el parámetro Lista <Parente>?

He estado lejos de la herencia por un tiempo y necesito un poco de ayuda.

Tengo una clase base abstractaChief. Hay dos clases heredadas.Ship yVehicle, que comparten varias propiedades a través deChief.

Tengo un método que usa esas propiedades comunes:

public static void AssignRandomProperties(PSetList routeSettings, List<Chief> theChiefs)

pero cuando trato de pasar un

List<Ship> 

o un

List<Vehicle> 

Me dicen que no se pueden convertir. Aquí hay una llamada de método de muestra:

ChiefRouteRandomizer.AssignRandomProperties(s.Route, theVehicles);

Estaba suponiendo, por supuesto, que elList<Vehicle> sería tratado como unList<Chief> cuando se pasa como argumento paraAssignRandomProperties, pero aparentemente no. ¿La lista necesita convertirse aList<Chief> ¿primero? ¿Si es así, cómo?

Respuestas a la pregunta(4)

Su respuesta a la pregunta