Is it possible to change/"override" the return type of a method in a subclass without overriding/altering the method (implementation) itself? Something like: class Foo: def gimme_thing() -> Thing: return self.factory.create() class Bar(Foo): def gimme_thing() -> BarThing: ... # <--- for Bar the factory will a return another type, how to spell this? Continue reading...