If you look at the wikipedia bridge entry there is an inconsistency in that the UML diagram depicts the implementor as a private variable, yet the accompanying Java code example has it as non-private and the refined abstraction makes use of it as in the following code fragment:
// low-level i.e. Implementation specific
public void draw() {
drawingAPI.drawCircle(x, y, radius);
}
the drawingAPI
is the implementor and is accessed from the refined abstraction.
Also in the same wikipedia entry the LePUS3 diagram implies that the refined abstractions should only call operations from the abstraction and not any methods from the implementor.
See also the following stackoverflow answer where the implementor is private: https://stackoverflow.com/a/319792/480894
So should the implementor be private and refined abstractions only call methods from the abstraction?