352. What is/are the OOP concepts demonstrated by this code: public class Test { public static void main(String[] args){ Animal a = new Dog(); new Hospital().treatAnimal(a); } } class Animal { public void sayIt(){ } } class Dog extends Animal{ public void sayIt(){ System.out.println('=\I am Dog=); } } class Cat extends Animal{ public void sayIt(){ System.out.println('I am Cat"); } } class Hospital{ public void treatAnimal(Animal a){ if(a instanceof Dog){ a.sayIt(); } else { a.sayIt(); } } }