You can even have a child class call the base classes methods which is often the smart way to go.

class truck : vehicle
{
public virtual bool StartEngine()
{
// Notice there are no safety checks before trying to start up.
try
{
// Do something to start the engine
return true; // because we succeeded
}
catch(exception error)
{
return false; // because there was an error
}
}
}
class DodgeRam : truck
{
public override bool StartEngine()
{
// Do a safety check first
if (IsSeatBeltsEngaged && IsFootOnBrake)
{
return base.StartEngine();
// Now all the electrical work is in the base class
// and not repeated in every child.
}
}
}