As you say, you're able to use the `sleep` method as the class extends ConditionalSleep, but you still need to construct an instance of the ConditionalSleep parent class for this to happen. In the same way, ConditionalSleep (which extends `Object`) has to construct an instance of Object.
Rather than trying to explain the details of this myself, I think it would be better to refer you to the Java documentation about inheritance, as this should answer your question while giving you wider understanding: https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
Apa
Edit: I'd recommend going through the whole of the tutorial I link, not just the page at that URL. It explains the concepts very nicely!