Object Oriented Programming

Principles, rules and concepts about OOP

What is OOP?

Object Oriented Programming (OOP) is a programming paradigm where the complete software operates as a bunch of objects talking to each other. An object is a collection of data and methods that operate on its data. OOPS is abbreviated as Object Oriented Programming system in which programs are considered as a collection of objects.

What is a class?

A class is simply a representation of a type of object. It is the blueprint/ plan/ template that describes the details of an object.

What is an object?

An object is an instance of a class. It has its own state, behavior, and identity.

Difference between class and an object?

An object is an instance of a class. Objects hold multiple information, but classes don't have any information. Definition of properties and functions can be done in class and can be used by the object.

A class can have sub-classes, and an object doesn't have sub-objects.

What are the 4 principles of OOP?

Encapsulation, Inheritance, Polymorphism and Abstraction.

What is Encapsulation?

Encapsulation is an attribute of an object, and it contains all data which is hidden. That hidden data can be restricted to the members of that class. Levels are Public, Protected, Private, Internal and Protected Internal. Encapsulation is referred to one of the following two notions:

  • Data hiding: a language feature to restrict access to members of an object.
  • Bundling of data and methods together: Data and methods that operate on that data are bundled together.

What is Inheritance?

Inheritance is a concept where one class shares the structure and behavior defined in another class. If inheritance applied on one class is called Single Inheritance, and if it depends on multiple classes, then it is called multiple Inheritance.

What is an abstraction?

Abstraction is a good feature of OOPS, and it shows only the necessary details to the client of an object. Means, it shows only required details for an object, not the inner constructors, of an object. Example – When you want to switch On television, it not necessary to show all the functions of TV. Whatever is required to switch on TV will be showed by using abstract class.

What is Polymorphism?

Polymorphism is nothing but assigning behavior or value in a subclass to something that was already declared in the main class. Simply, polymorphism takes more than one form

What is an abstract class?

An abstract class is a class which cannot be instantiated. Creation of an object is not possible with an abstract class, but it can be inherited. An abstract class can contain only Abstract method. Java allows only abstract method in abstract class while for other languages allow non-abstract method as well.

What are manipulators?

Manipulators are the functions which can be used in conjunction with the insertion (<<) and extraction (>>) operators on an object. Examples are endl and setw

Define a constructor?

A constructor is a method used to initialize the state of an object, and it gets invoked at the time of object creation. Rules for constructor are:
  • Constructor name should be same as class name
  • A constructor must have no return type

What are the various types of constructors?

There are three various types of constructors:
  • Default Constructor – With no parameters
  • Parametric Constructor – with Parameters. Create a new instance of a class and also passing arguments simultaneously
  • Copy Constructor – Which creates a new object as a copy of an existing object

Define Destructor?

A destructor is a method which is automatically called when the object is made of scope or destroyed. Destructor name is also same as class name but with the tilde symbol before the name.

What is an Inline function?

An inline function is a technique used by the compilers and instructs to insert complete body of the function wherever that function is used in the program source code

What is a virtual function?

A virtual function is a member function of a class, and its functionality can be overridden in its derived class. This function can be implemented by using a keyword called virtual, and it can be given during function declaration

What is a friend function?

A friend function is a friend of a class that is allowed to access to Public, private or protected data in that same class. If the function is defined outside the class cannot access such information.

Friend can be declared anywhere in the class declaration, and it cannot be affected by access control keywords like private, public or protected

What is function overloading?

Function overloading an as a normal function, but it can perform different tasks. It allows the creation of several methods with the same name which differ from each other by the type of input and output of the function.

What is method overriding?

Method overriding is a feature that allows a subclass to provide the implementation of a method that overrides in the main class. This will overrides the implementation in the superclass by providing the same method name, same parameter and same return type

What is an interface?

An interface is a collection of an abstract method. If the class implements an inheritance, and then thereby inherits all the abstract methods of an interface

What are access modifiers?

Access modifiers determine the scope of the method or variables that can be accessed from other various objects or classes

What are sealed modifiers?

Sealed modifiers are the access modifiers where it cannot be inherited by the methods. Sealed modifiers can also be applied to properties, events, and methods. This modifier cannot be applied to static members.

What are different types of arguments?

A parameter is a variable used during the declaration of the function or subroutine and arguments are passed to the an, and it should match with the parameter defined. There are two types of Arguments.
  • Call by Value – Value passed will get modified only inside the function, and it returns the same value whatever it is passed it into the function.
  • Call by Reference – Value passed will get modified in both inside and outside the functions and it returns the same or different value

What is exception handling?

An exception is an event that occurs during the execution of a program. Exceptions can be of any type – Runtime exception, Error exceptions. Those exceptions are adequately handled through exception handling mechanism like try, catch and throw keywords.

Difference between overloading and overriding?

Overloading is static binding whereas Overriding is dynamic binding. Overloading is nothing but the same method with different arguments, and it may or may not return the same value in the same class itself.
Overriding is the same method names with same arguments and return types associated with the class and its child class.

How can we call the base method without creating an instance?

It is possible to call the base method without creating an instance. And that method should be “Static method”.
Doing inheritance from that class. - Use Base Keyword from a derived class.

What is early and late binding?

Early binding refers to the assignment of values to variables during design time whereas late binding refers to the assignment of values to variables during run time.