Inheritance also applies to annotated types. Any instance of Foo
which is a subtype of FooBase
is also a valid object of the type FooBase
. So you can pass a FooBase
object but also a Foo
object to the function.
If you want to limit the function to only subclasses of FooBar
, you could take a look at the Type[C]
construct: The type of class objects.