Such examples can be contrived and fail to ellicit the complete implications of OO programming. Students will get stuck on unrealistic uses of polymorphism and inheritance based on Dog Is-A Mammal.
One might view a class as a species, say and an object as an organism, but then what are static classes and static methods? Such metaphorical concepts should be discarded rather rapidly in their education, lest it cripple their usage of a language which is far richer than the metaphors to other fields of experience.
It is important to remember that although OO is useful for modelling the real world, it is also only an internal representation and there are sometimes needs where the software implementation will not have literal 1-1 correspondence with reality.
For instance, static factory methods Rabbit::CreateRabbit is not related to at all to the real world of making new rabbits - which is probably more like an instance method valid only on a female rabbit taking a male rabbit with a delegate callback which will fire 28 days later. If they get that joke, they're probably ready to graduate.