Skip to main content

OOP concepts in Java





What is the Class? 
The class is a group of similar entities. It is extensible program code for creating objects and to define data types as well as methods.

What is Object in OOP?
Object refers to a particular instance of a class whereas objects can be a combination of variables, functions and data structures.

What are the 4 principles in OOP?
Encapsulation, Data Abstraction, Polymorphism and Inheritance.

What is Inheritance?
Deriving a new class from an existing class and forming them into a hierarchy of classes.

What is Encapsulation? 
 It is used to hiding the implementation details.

What is Constructor overloadin? 
It is a feature that allows a class to have more than one constructor having different argument lists.

What is the difference between method overloading vs method overriding?



Why do we need to use Method Overloading?
Suppose that you have a class that can use calligraphy to draw various types of data (strings, integers, and so on) and that contains a method for drawing each data type. It is difficult to use a new name for each method—for example, drawString, drawInteger, drawFloat, and so on.

In the Java programming language, you can use the same name for all the drawing methods but pass a different argument list to each method. Thus, the data drawing class might declare four methods named draw, each of which has a different parameter list.

public class DataArtist {
    ...
    public void draw(String s) {
        ...
    }
    public void draw(int i) {
        ...
    }
    public void draw(double f) {
        ...
    }
    public void draw(int i, double f) {
        ...
    }
}

Why do we need to use Method Overriding?  

Declaring a method in the subclass which is already present in the parent class is known as method overriding. Overriding is done so that a child class can give its own implementation to a method which is already provided by the parent class.

The implementation in the subclass overrides (replaces) the implementation in the superclass by providing a method that has the same name, same parameters or signature, and same return type as the method in the parent class. The version of a method that is executed will be determined by the object that is used to invoke it. If an object of a parent class is used to invoke the method, then the version in the parent class will be executed, but if an object of the subclass is used to invoke the method, then the version in the child class will be executed.

  1. Helps in writing generic code based on parent class or interface as object resolution happens at runtime
  2. Provides multiple implementations of the same method and can invoke parent class overridden method using super keyword
  3. Defines what behaviour a class can have and implementation of behaviour has been taken care by a class which is going to implement.



Comments

Popular posts from this blog

DFS Performance Measurement

Completeness DFS is not complete, to convince yourself consider that our search start expanding the left subtree of the root for so long path (maybe infinite) when different choice near the root could lead to a solution, now suppose that the left subtree of the root has no solution, and it is unbounded, then the search will continue going deep infinitely, in this case , we say that DFS is not complete. Optimality  Consider the scenario that there is more than one goal node, and our search decided to first expand the left subtree of the root where there is a solution at a very deep level of this left subtree , in the same time the right subtree of the root has a solution near the root, here comes the non-optimality of DFS that it is not guaranteed that the first goal to find is the optimal one, so we conclude that DFS is not optimal. Time Complexity Consider a state space that is identical to that of BFS, with branching factor b, and we start the search fro...

Difference between a Singly LinkedList and Doubly LinkedList

Difference between abstract class and interface in OOP

Source: Amit Sethi In Interface: > All variables must be public static final. > No constructors. An interface can not be instantiated using the new operator.   > All methods must be public abstract .