class Window {
	public void repaint () {
			// invoke the deferred method paint.
			// Because the implicit receiver, this,
			// is polymorphic, the method from the
			// child class will be executed
		paint (graphicsContext);
	}
	abstract public void paint (Graphics g); // deferred
	private Graphics graphicsContext;
}
class GraphicsWindow extends Window {
	public void paint (Graphics g) {
		// do the appropriate painting job
	}
}
Only the child class knows how to paint the window.
The receiver variable is responsible for remembering the actual class
of the receiver when executing the method in the parent class.