What is inheritance? Types of inheritance

Inheritance represents the relationship between two objects or two classes where one derives functionality from another and then extends it by adding new fields, properties or methods. It is one of the fundamental concepts of the object-oriented programming along with polymorphism, abstraction and encapsulation. Inheritance allows classes to inherit commonly used state and behavior from other classes, so it is one of the main tools of code reuse in OOP.

What is software library?

A library is a reusable set of code which software developer can use as it comes from its creators. Library usually focuses on a narrow set of functionality, which user accesses through an API. It performs specific, well-defined operations. User calls a library function, it executes some code and then control is returned to developer's code. Usually, it does not provide any hooks for developer to extend or override its behavior.

What is software framework?

A software framework is an abstraction used in software development to provide generic functionality for application-specific needs. It is a programming platform, which contains common code with range of generic features, which might be selectively used, overridden or specialized by developers to suit their requirements for the particular application.