If there are properties or methods in your child class that requires usage from your parent class, then you should probably recompose your class design and consolidate that functionality upward. Unless there is a fault with the parent class method that prevents a child class method from doing something different and/or unique. In that case, read below.
For your follow on question, which seems to be "How do I have a common function in my parent class that is common to all subclasses, yet have each child class have a different implementation?", I may have a solution. You could use one public method that calls a virtual method in your parent class, that will be inherited by all of your child classes. The virtual method could then be overriden safely by all of your parent classes and have a slightly different implementation or effect, but still be used by calling the parent class public method.
For example,
public class ParentObject
{
public void Run()
{
ImplementationRun()
{
// Stub virtual method to be overriden in child classes
protected virtual void ImplementationRun()
{
}
}
public class ChildObject : ParentObject
{
protected override void ImplementationRun()
{
// Child Class specific implementation here
}
}
This way you could still utilize your child class methods in the virtual function, that will execute in the parent class method, rather than contort the parent class method to suit a child class specific instance.