Examine the following Java code involving two classes, Anima…

Examine the following Java code involving two classes, Animal and Dog:  class Animal {            void eat() {                           System.out.println(“This animal eats food.”);                            }                 }class Dog extends Animal {              void bark() {                               System.out.println(“The dog barks.”);                               }                  }public class TestInheritance {  public static void main(String[ ] args) {                Dog myDog = new Dog();                myDog.eat();                myDog.bark();                 }          }a) Explain how inheritance is demonstrated in the above code.b) What will be the output when the main method is executed?c) Describe the relationship between the Animal and Dog classes.

In a reporting application, the Report class generates repor…

In a reporting application, the Report class generates reports in different formats (PDF, Excel, HTML). Whenever a new format is added, you need to modify the Report class to include the new logic for report generation.How can this design be improved to adhere to the Open-Closed Principle?