Once a function is marked with open, it is open for all subclasses, even if an intermediate class (e.g., Intermezzo) does not override that function.

However, a class can mark an inherited open function as final, to prevent its own subclasses from overriding it.

You can learn more about this in:
Run Edit