Object Oriented Programming (OOPs) intro static singleton inheritance polymorphism generics exceptionHandling cloning collections enumExamples