William, you can call the method from any method of your child class provided the reference you use to invoke it is of the type of the child class or a subclass of it (the rationale, among other things, is explained in my answer to this question). As a simplified example, consider this Parent class
package parent;
public class Parent {
protected void method() {
System.out.println("parent.Parent.method() called");
}
}
extended by a Child class
package child;
import grandchild.Grandchild;
import parent.Parent;
public class Child extends Parent {
public void anyMethod(Child child, Grandchild grandchild) {
this.method();
child.method();
grandchild.method();
}
}
extended, in turn, by a Grandchild class.
package grandchild;
import child.Child;
public class Grandchild extends Child {
}
Given this class hierarchy, this code
Child child1 = new Child();
Child child2 = new Child();
Grandchild grandchild = new Grandchild();
child1.anyMethod(child2, grandchild);
would produce the following output.
parent.Parent.method() called
parent.Parent.method() called
parent.Parent.method() called
So, a Child object can access its own protected method() member as well as the method() member of another instance of Child or of an instance of a subclass of Child. It can't, however, call the method using a reference whose type is Parent (unless it uses super) or a different subclass of Parent (say, Brother).
I hope this answers your question and gives you an idea of what you can (or can't) do. If not, let me know.