Introduction
Object-Oriented Programming, also known as OOP, is a programming paradigm based on objects. In this programming paradigm, objects contain data in the form of fields and code in the form of methods, which can be used to modify the data of the same object. In some object-oriented languages, objects are instances of classes (for example, Java and Kotlin). In object-oriented programming, our code is made up of objects that interact with each other. In this chapter, we will learn about some key components of OOPs, such as interfaces, classes, class hierarchies, and Generics.