make clear that instanceof supertypes are not base types

This commit is contained in:
Philip Ginsbach
2021-09-03 10:23:58 +01:00
parent abaa0633d7
commit 6e025186ab

View File

@@ -406,7 +406,9 @@ However, `foo_method` is not exposed in `Bar`, so the query `select any(Bar b).f
results in a compile time error. Note from the example that it is still possible to access
methods from instanceof supertypes from within the specialising class with the `super` keyword.
Crucially, the base class methods are not just hidden. The extension relationship is severed.
Crucially, the instanceof **supertypes** are not **base types**.
This means that these supertypes do not participate in overriding, and any fields of such
supertypes are not part of the new class.
This has implications on method resolution when complex class hierarchies are involved.
The following example demonstrates this.