Skip to main content

polymorphism

■ Polymorphism
• The word polymorphism means having many forms.
• Ability to create many form/Achieving multiple behaviour with same 
method/object.
• polymorphism is a fundamental OOP concept that allows objects of different types to be treated as objects of a common base type. 
• It allows objects to be treated as instances of their parent class rather than their actual class. 

➤ Example
Consider a scenario where you have a base class Animal and several derived classes such as Dog, Cat, and Bird. Each derived class will override a method Speak to provide its specific implementation.
Every animal can speak, but each type of animal speaks in different way so each animal need to implement speak method according to their behavior, this is what polymorphism is one name many form 

class Animal
{
    // Virtual method in the base class
    public virtual void Speak()
    {
        Console.WriteLine("Animal makes a sound");
    }
}

class Dog : Animal
{
    // Override the Speak method in the Dog class
    public override void Speak()
    {
        Console.WriteLine("Dog barks");
    }
}

class Cat : Animal
{
    // Override the Speak method in the Cat class
    public override void Speak()
    {
        Console.WriteLine("Cat meows");
    }
}

class Bird : Animal
{
    // Override the Speak method in the Bird class
    public override void Speak()
    {
        Console.WriteLine("Bird chirps");
    }
}

class Program
{
    static void Main()
    {
        // Create instances of derived classes and assigning it to base class reference

        Animal dog = new Dog();
        Animal cat = new Cat();
        Animal bird = new Bird();


        // Call the Speak method on each instance

        dog.Speak(); // Outputs: Dog barks
        cat.Speak(); // Outputs: Cat meows
        bird.Speak(); // Outputs: Bird chirps
    }
}


➤ There are two main types of Polymorphism 

1) Compile-Time Polymorphism (Static Polymorphism)
• It resolves method calls at compile time rather than at runtime 
• static polymorphism is achieved through method overloading, operator overloading and method hiding. 

2) Run-Time Polymorphism(Dynamic Polymorphism)
• It resolves method calls at run time rather than at compile time 
• It allows a method to perform differently based on the object that it is acting upon.
• This is typically achieved through method overriding and interfaces.

➤ When or why we made a method a virtual method
• a method is made virtual to allow derived classes to override it and provide their specific implementations. 
• This is a key aspect of achieving polymorphism.
• If you anticipate that new derived classes might need to implement or modify the behavior of certain methods.

Comments

Popular posts from this blog

Raster scan Vs Vector Scan

1. Raster Scan Display   How It Works : A raster scan display works by painting an image on the screen pixel by pixel, row by row. It follows a systematic pattern where the electron beam (in CRT monitors) or the display elements (in modern LCD/LED screens) sweep across the screen from left to right, top to bottom, in a series of horizontal lines (scan lines). This process is akin to how a traditional TV screen works.   Process : The display draws the image starting from the top-left corner, moving to the right, then moves to the next row below, and repeats this process until the entire screen is filled. This pattern creates a grid of pixels, where each pixel can have a color and brightness level.   Characteristics : Pixel-based : The screen consists of a grid of pixels, and each pixel can have a distinct color and intensity. Continuous Image : Raster scan displays are capable of displaying detailed and complex images, including photographs and videos, because they break t...

Inheritance

*■ Inheritance*  • Inheritance is a concept in OOP that allows a class to inherit properties and behaviors (methods) from another class. • A class that inherits from another class is called a derived class (or subclass) • The class which gets inherited by another class is called the base class (or superclass). • Inheritance is possible only if there is is-a relationship between parent and child class. • constructors are not inherited in derived class, however the derived class can call default constructor implicitly and if there's a parameterised constructors in bass class then derived class can call it using 'base' keyword.  ____________________________________________  *➤ Rules of Inheritance*  1) C# supports single inheritance, meaning a class can inherit from only one base class. 2) A parent class constructor must be accessible in child class otherwise  inheritance will be not possible. 3) every class, whether user-defined or predefined implicitly derives fr...

unit -1 Introduction of Image processing

  What is Image Processing? Image processing is a method to perform operations on an image to enhance it or extract useful information. It is a type of signal processing where the input is an image, and the output may be either an image or characteristics/features associated with that image. Goals of Image Processing Image Enhancement : Improving visual appearance (e.g., contrast, sharpness) Image Restoration : Removing noise or distortion Image Compression : Reducing the amount of data required to represent an image Feature Extraction : Identifying objects, edges, or patterns Image Analysis : Understanding and interpreting image content Object Recognition : Detecting and identifying objects in an image What is an Image? An image is a two-dimensional function f(x, y) , where x and y are spatial coordinates, and f is the intensity (brightness or color) at that point. For digital images, both x, y, and f are finite and discrete. Types of Image Representation...