Java Polymorphism Nedir?

sametklou

Java Polymorphism Nedir?

Java'da polymorphism, nesne yönelimli programlama konseptlerinden biridir ve bir sınıfın bir alt sınıfın özelliklerine sahip olabilmesini sağlar. Polymorphism sayesinde aynı methodu farklı şekillerde uygulayabilir ve farklı sınıflar arasında aynı isimde methodlar oluşturabiliriz.

Çeşitleri

  1. Parametrik Polymorphism (Generic Polymorphism): Belirli tiplerle çalışmak yerine genel ve çeşitli tiplerle çalışmayı sağlar.

  2. Ad Hoc Polymorphism (Overloading): Aynı isimde birden fazla methodun tanımlanmasıyla sağlanır. Parametrelerin farklı olması durumunda belirli bir fonksiyon çalışır.

  3. Inclusion Polymorphism (Subtype Polymorphism): Alt sınıfların üst sınıfların özelliklerini alabilmesini sağlar.

Örnek Kodlar

Parametrik Polymorphism

public class Box<T> {
    private T value;

    public void setValue(T value) {
        this.value = value;
    }

    public T getValue() {
        return value;
    }

    public static void main(String[] args) {
        Box<Integer> intBox = new Box<>();
        intBox.setValue(10);
        System.out.println(intBox.getValue());

        Box<String> strBox = new Box<>();
        strBox.setValue("Hello");
        System.out.println(strBox.getValue());
    }
}

Ad Hoc Polymorphism

public class MathUtil {
    public int add(int x, int y) {
        return x + y;
    }

    public double add(double x, double y) {
        return x + y;
    }

    public static void main(String[] args) {
        MathUtil math = new MathUtil();
        System.out.println(math.add(1, 2));
        System.out.println(math.add(1.5, 2.5));
    }
}

Inclusion Polymorphism

public class Animal {
    public void sound() {
        System.out.println("Animal makes a sound");
    }
}

public class Dog extends Animal {
    @Override
    public void sound() {
        System.out.println("Dog barks");
    }

    public static void main(String[] args) {
        Animal a = new Dog();
        a.sound();
    }
}

Polymorphism, Java programcılarına esneklik ve kolaylık sağlar. Farklı durumlar için farklı sınıflar ve methodlar tanımlamak yerine aynı yapıları kullanarak kodun daha okunabilir ve yeniden kullanılabilir olmasını sağlar. Bu nedenle Java programlama dilinde polymorphism önemli bir kavramdır.