PHP'de Polimorfizm Açıklaması [Örneklerle]
Yayınlanan: 2021-02-19PHP programlama dili, diğer temel yapılarla birlikte bir nesne yönelimli programlama (OOP) paradigmasını takip eder. OOP'lerin en önemli özelliklerinden biri polimorfizmdir. Genel olarak polimorfizm, Yunanca çok anlamına gelen poly ve form anlamına gelen morfizm kelimelerinden türetilmiştir. OOP'lerde polimorfizm, tek bir arayüzde farklı işlevlere sahip sınıflar oluşturmanıza izin veren bir kavramdır.
Genel olarak, iki türdür: derleme zamanı (aşırı yükleme) ve çalışma zamanı (geçersiz kılma), ancak PHP'deki polimorfizm, aşırı yüklemeyi veya başka bir deyişle derleme zamanı polimorfizmini desteklemez. PHP'deki polimorfizmin en önemli faydası, hepsi aynı şekilde kullanılacağından, hangi kodun hangi sınıfta yazılacağını tanımlamanın teknik detayları hakkında endişelenmenize gerek olmamasıdır.
Nesne yönelimli PHP polimorfizminin anlaşılması kolay bir örneği , farklı geometrik şekillerin alanıdır. Farklı uzunluk, genişlik, yarıçap ve diğer parametrelere sahip birçok şekil vardır, ancak tüm şekillerin bir alanı olacaktır. Anlamadıysanız endişelenmeyin, kavramı ve nasıl uygulanacağını daha iyi anlamak için PHP'deki çeşitli polimorfizm örneklerine bakacağız.
İçindekiler
PHP'de Polimorfizm Nasıl Uygulanır?
PHP'deki polimorfizm, arayüzler veya soyut sınıflar kullanılarak uygulanabilir. Her iki şekilde de uygulamak için örneklere bakacağız.
Arabirimlerde Uygulanacak PHP'de Polimorfizm Örneği
Arayüzü, onu genişleten tüm sınıflar için bir plan olarak düşünebilirsiniz. Sadece tek bir birincil farkla sınıflara benzerler. Arabirimler içinde yöntem adlarını ve bağımsız değişkenleri bildirebilir ve tanımlayabilirsiniz, ancak yöntem kodu yazamazsınız. Bir arabirim uygulayan herhangi bir sınıf, tüm yöntemlerini uygulayacaktır. Bir arayüzün sözdizimi şöyledir:
arayüz örneğiArayüz{
public function methodName();
}
Artık arayüzler hakkında bilgi sahibi olduğunuza göre, bir arayüzde PHP'de polimorfizmin nasıl uygulanacağına bakalım.
<?php
arayüz ShapeExmp{
genel işlev calcArea();
}
class SquareExmp, ShapeExmp'i uygular{
özel $yan;
public function __construct($yan){
$bu->yan = $yan;
}
genel işlev calcArea(){
$alan = $bu->taraf * $bu->taraf;
echo “Karenin alanı = “.$alan;
}
}
class RectangleExmp, ShapeExmp'i uygular{
özel $width1;
özel $yükseklik1;
genel işlev __construct($genişlik1,$yükseklik1){
$bu->genişlik1 = $genişlik1;
$bu->yükseklik1 = $yükseklik1;
}
genel işlev calcArea(){
$alan = $bu->genişlik1 * $bu->yükseklik1;
echo “<br>Dikdörtgenin alanı = “.$alan;
}
}
class TriangleExmp, ShapeExmp'i uygular{
özel $cons1;
özel $width1;
özel $yükseklik1;
public function __construct($cons1,$width1,$height1){
$bu->eksileri1 = $eksileri1;
$bu->genişlik1 = $genişlik1;
$bu->yükseklik1 = $yükseklik1;
}
genel işlev calcArea(){
$alan = $bu->eksileri1 * $bu->genişlik1 * $bu->yükseklik1;
echo “<br>Üçgenin alanı= “.$alan;
}
}
$squ = yeni KareExmp(8);
$squ->calcArea();
$doğru = yeni DikdörtgenExmp(10,15);
$rekt->calcArea();
$tri = yeni ÜçgenExmp(0.5,10,12);
$tri->calcArea();
?>
Çıktı:
Karenin alanı = 64
Dikdörtgenin alanı = 150
Üçgenin alanı= 3
Yukarıdaki örnekte görebileceğiniz gibi, bir arayüz aracılığıyla PHP'de polimorfizmi uyguladık. Üç şeklin alanını oluşturduk ve elde ettik: kare, üçgen ve dikdörtgen. Uygulanan sınıflar ve argümanlar da değişmeye devam eder, ancak sonuç her zaman şeklin alanıdır. Benzer şekilde, daireler, paralelkenarlar, elipsler ve daha fazlası gibi diğer şekillerin alanlarını da oluşturabilir ve hesaplayabilirsiniz.
PHP'de Soyut Sınıflarda Uygulanacak Polimorfizm Örneği
PHP'deki soyut sınıflar, yöntemleri tanımlanmış ancak kodu olmayan üst sınıflardır. “soyut” anahtar kelimesi yardımıyla tanımlanırlar. Bunları yalnızca diğer sınıfları devralmak için kullanabilirsiniz. Her soyut sınıfın bir veya daha fazla soyut yöntemi vardır. Bu sınıflar, alt sınıflarının aynı adı taşıyan yöntemleri doldurmasını gerektirir. Bu nedenle, farklı alt sınıflar yöntemleri aynı şekilde kullanır ve böylece PHP'de polimorfizm uygular. Bunu PHP'de bir polimorfizm örneği ile daha iyi anlayalım.
<?php
soyut sınıf shapeExmp{
soyut korumalı fonksiyon calcArea();
}
class rectangleExmp, shapeExmp'i genişletir{
var $x,$y;
public function __construct($x , $y){
$bu->x=$x;
$bu->y=$y;
}
genel işlev calcArea(){
$a=$bu->x*$bu->y;
$a döndür;
}
}
class CircleExmp, shapeExmp'i genişletir{
var $r;
public function __construct($r){
$bu->r=$r;
}
genel işlev calcArea(){
$pi=3.142;
$a=pow($bu->r,2)*$pi;
$a döndür;
}
}
class squareExmp, shapeExmp'i genişletir{
var $s;
genel işlev __construct($s){
$bu->s=$s;
}
genel işlev calcArea(){
$a=$bu->s * $bu->s;
$a döndür;
}
}
$doğru=yeni dikdörtgenExmp(8,10);
$alan=$doğru->calcArea();
echo “Dikdörtgen alan= $alan <br>”;
$circ=yeni daireExmp(5);
$alan=$circ->calcArea();
echo “Çember alanı=$alan<br>”;
$squ=yeni kareExmp(7);
$alan=$squ->calcArea();
echo “Alan kare= $alan <br>”;
?>
Çıktı:
Dikdörtgen alanı= 80
Daire alanı=78.55
Kare alan=49
Yukarıdaki örnekte de görebileceğiniz gibi, önce bir soyut sınıf shapeExmp oluşturduk. Daha sonra içinde calcArea() soyut bir fonksiyon tanımladık. Daire, dikdörtgen ve kare alanı hesaplamak için bu sınıfları soyut sınıftan türettik ve calcArea() soyut işlevini kullandık. Benzer şekilde, PHP'de polimorfizmi uygulamak için soyut sınıfları kullanabilir ve çalışma süresi boyunca kullanabilirsiniz.
Ödeme: Github'da PHP Projeleri
Dünyanın En İyi Üniversitelerinden Online Yazılım Kursları Öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Çözüm
Bu, PHP'deki polimorfizm hakkındaki tüm şüphelerinizi giderirdi. Herhangi bir IDE veya çevrimiçi PHP derleyicisinin yardımıyla farklı şekillerde kullanmayı deneyebilirsiniz. PHP yaygın bir programlama dili haline geldi. PHP'de çok sayıda kariyer fırsatı mevcuttur . Etkileşimli web geliştirme için çok uygundur ve tam kapsamlı bir geliştirici olmayı öğrenmek için gereklidir.
Tam kapsamlı bir geliştirme kariyeri sürdürmek istiyorsanız, tam yığın Yazılım Geliştirme kursunda upGrad ve IIIT-B'nin Yönetici PG Programına göz atabilirsiniz . Kurs size 16 farklı programlama dili ve aracı hakkında eğitim sunar. Kurs boyunca tamamlamanız gereken 9+ proje ödevi ile upGrad size yerleştirme güvencesi verir. Sağlam ve ölçeklenebilir web siteleri ve uygulamaları nasıl oluşturacağınızı öğrenmenize yardımcı olacak 500 saatten fazla eğitim materyali sunar.
Nesne yönelimli programlama nedir?
Programlamada polimorfizm nedir?
Polimorfizm, birden fazla forma sahip olma yeteneğidir. Örneğin, bir köpeğin 4 bacağı vardır ama bacakları farklıdır. Bu, aynı nesnenin farklı bir şeklidir. Bilgisayar programlamada polimorfizm, farklı girdilere ve tek bir çıktıya sahip olma yeteneğidir. Örneğin, bir Kişi, İşçi ve Müşteri sınıfımız olabilir ve her bireyin farklı girdileri olabilir. Her kişinin adı, adresi ve telefon numarası farklı olduğundan girişleri farklıdır. Ancak, çıktı, Kişi sınıfı olan hepsi için aynıdır.
Sınıflar ve nesneler programlamada nasıl çalışır?
Sınıflar, nesne yönelimli programlamanın (OOP) temel bir birimidir. Bunlar nesneler için planlardır ve bu nedenle nesneler oluşturmak ve nesnelerin davranışını tanımlamak için kullanılırlar. Sınıflar, OOP'nin evrensel yapı taşları olarak düşünülebilir. Belirli bir görev veya duruma özel nesneler oluşturmak için kullanılırlar. Ancak gerçek dünyanın aksine, sınıflar hemen hemen her zaman ve herhangi bir sırada oluşturulabilir. Nasıl kullanılacağını bilmeden önce bile bir sınıf oluşturabilirsiniz - "anonim" sınıf somutlaştırması olarak bilinen bir süreç.