Skip to main content

Polymorphism in Apex

Polymorphism in Apex


Polymorphism in simple word can be said as One name many forms.

For example , a man can play a role as an Employee, as a Father or as a Husband in his day-to-day life. It means that he can be in any of these form. 


Polymorphism can be achieved by these two ways :

  1. Method Overloading
  2. Method Overriding

Method Overloading

    If a class have multiple methods with same name but different parameters (either different length of the arguments or different data types of the arguments), it is known as Method Overloading.
    If we have to perform only one operation, with the same name of the methods increases the readability of the program as well as its very logical too.
    Let’s suppose if we want to perform addition of the given numbers but there can be any number in arguments as below:

    Example of method overloading with different data types of the arguments with same method name like sum.

    public class MethodOverloadClass {
        public void sum(Integer no1, Integer no2) {
            System.debug('Sum of 2 Integer is : '+ (no1+no2));
        }
        
        public void sum(Decimal no1, Decimal no2) {        
            System.debug('Sum of 2 Integer is : '+(no1+no2));
        }
    }

    Execute the below code to see the output

    MethodOverloadClass objMethodOverloadClass = new MethodOverloadClass();
    objMethodOverloadClass.sum(5,4);
    objMethodOverloadClass.sum(5.4,4.2);

    Method Overriding

      If a subclass (child class) has the same method as declared in the parent class, it is known as method overriding in Apex.
      In other words, we can say If a subclass provides the specific implementation of the method that has been provided by one of its parent class, it is known as method overriding.
      Note: Always make sure to achieve method overriding the scope must be of parent and child class relationship and you must have same name method needs to declare into child class with same signature of the method from Parent class to achieve method overriding in Apex.


      Why to use overriding ?

        Method overriding is used to provide specific implementation of a method that is already provided by its Parent/Super class. Method overriding is used to achieve runtime polymorphism.

        • Why to use overriding ?
          • Method name must be same as in the parent class.
          • Method name must have same parameter as in the parent class’s method.
          • Must be inheritance.


        Example ,

        here I have created a parent class and declared it as virtual , so that it can be inherited by child / other class. Also, declared the method as virtual, so that it can be overridden in child class.
        public virtual class ParentClass {
          public virtual void show() {
            System.debug('This is Parent-Class');
          }
        }
        here the Child-Class, override keyword is used to override the method.
        public class ChildClass extends ParentClass{
          public override void show(){
            System.debug('This is Child-Class');   } }
        Execute and see the the output :
        ChildClass objChildClass = new ChildClass();
        objChildClass.show();
        //OR ParentClass objParentClass = new ChildClass(); objParentClass.display();
        Output will be :
        This is Child-Class


        By : Harshal Lad 

        Comments

        Popular posts from this blog

        Apex Triggers and Classes

          Apex Triggers   is use to execute the functionality or piece of code on record manipulation ( i.e., CREATE / UPDATE / DELETE / UNDELETE   records ). A trigger executes before and after an event occurs on record.

        OOP,s Concepts in APEX

        What is OOP's Concepts in APEX Programming ?   Object-Oriented Programming System (OOPs) is a programming concept that works on the principles of abstraction , encapsulation , inheritance , and polymorphism . It allows users to create objects they want and create methods to handle those objects. The basic concept of OOPs is to create objects, re-use them throughout the program, and manipulate these objects to get results. OOP meaning “Object Oriented Programming” is a popularly known and widely used concept in modern programming languages like Java, Apex and many other. List of OOP's Concepts >  Class  :   The class is one of the Basic concepts of OOPs which is a group of similar entities. It is only a logical component and not the physical entity. Lets understand this one of the OOPs Concepts with example, if you had a class called “Expensive Cars” it coul...

        Inheritance in Apex

        Inheritance in Apex I nheritance in Apex is a mechanism by which one object acquires all the properties and behaviors of parent object. The idea behind inheritance in Apex is that you can create new classes that are built upon existing classes. Whenever you inherit from an existing class, you can reuse methods and fields of parent / super class, as well as you can add new methods and fields also based on the requirements. Reason to use inheritance : For Method Overriding (to achieved runtime polymorphism). For Code Reusability Various term used in inheritance : Class: A class is a concept/prototype/template of common properties, from which objects are created. Child Class/Sub Class: Child class is a class which inherits the other class, known as child class. It is also called extended class, derived class, or sub class. Parent Class/Super Class: Parent class is t...