There are three types of inheritance in Java: single, multilevel, and hierarchical. Single inheritance allows a child class to inherit from one parent class, as in the example of the Dog class extending the Animal class. Multilevel inheritance allows a grandchild class to inherit from a parent class through a child class, as in the BabyDog class extending Dog and indirectly inheriting from Animal. Hierarchical inheritance allows multiple child classes to inherit from a common parent class, as in both the Dog and Cat classes extending Animal.