Nesne yönelimli programlamada (OOP) polimorfizm nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Nesne yönelimli programlamada (OOP) polimorfizm, nesnelerin türüne bağlı olarak farklı davranışlar sergileme özelliğidir ve aynı arayüzü (metodu) kullanarak farklı veri türlerini işleme imkanı sağlar. Bu, kodun esnekliğini ve genişletilebilirliğini sağlar.
Ana polimorfizm türleri:
-
Derleme zamanında polimorfizm (statik): Metot aşırı yükleme (method overloading) ile gerçekleştirilir. Farklı metodlar aynı ada sahip olup, parametre seti ve/veya tipleriyle ayrılır. Derleyici, çağrı imzasına göre hangi metodun çağrılacağını belirler.
class Calculator { // add metodunun aşırı yüklenmesi public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } } -
Çalışma zamanında polimorfizm (dinamik): Metot overriding (üstüne yazma) ile gerçekleştirilir. Alt sınıf, üst sınıfta tanımlanmış olan metodun kendi özgü uygulamasını sağlar. Hangi uygulamanın kullanılacağı, nesnenin gerçek türüne göre çalışma zamanında belirlenir.
class Animal { // Temel metod public void sound() { System.out.println("Hayvan ses çıkarır"); } } class Dog extends Animal { // sound metodunun üzerine yazılması @Override public void sound() { System.out.println("Köpek havlar"); } } // Kullanım örneği // Animal myDog = new Dog(); // Nesnenin gerçek türü - Dog // myDog.sound(); // Dog sınıfındaki sound metodunu çağırır
Polimorfizm, daha soyut ve konu alanını açıkça tanımlayan kod yazmayı sağlar, bakımını kolaylaştırır ve yeni fonksiyonların mevcut kodu değiştirmeden eklenmesine imkan tanır. QA ve QA Otomasyon bağlamında, polimorfizmin anlaşılması, otomasyon frameworkleriyle çalışırken önemlidir; burada soyut sınıflar/arabellekler ve onların somut uygulamaları kullanılır (örneğin, Selenium'da farklı tarayıcılar için sürücülerin kullanılması gibi).