1. Inheritance allows a subclass to inherit properties and behaviors from a parent superclass. This allows code reusability and method overriding to achieve runtime polymorphism. 2. There are three types of inheritance in Java: single, multilevel, and hierarchical. Single inheritance involves one subclass extending one superclass, while multilevel involves deriving a subclass from another derived class. Hierarchical inheritance involves one superclass being inherited by multiple subclasses. 3. The super keyword is used to access members of the parent superclass like methods and variables, or to call the parent superclass constructor. Method overriding occurs when a subclass defines a method with the same name and parameters as a method in its parent superclass.