Inheritance is a mechanism where one class acquires the properties and behaviors of another class. In Java, inheritance allows classes to reuse fields and methods from the parent class. The key types of inheritance in Java are single inheritance, multilevel inheritance, hierarchical inheritance, and method overriding which enables runtime polymorphism. The super keyword refers to the parent class, and the final keyword can restrict classes, methods, and variables from being overridden or redefined.