ارث بری در PHP

چاپ

ارث بری یک کلاس از کلاس دیگر

Wiki

یکی از مزیت های برنامه نویسی شی گرا، ارث بری یا Inheritance می باشد. ارث بری قابلیت توسعه کلاس را به برنامه نویس می دهد که توسط آن براحتی می توان کلاس نوشته شده را update کرد بدون آنکه بخواهیم در تعریف اصلی کلاس تغییری ایجاد نماییم.

با استفاده از کلمه کلیدی extends در جلوی نام کلاس و در ادامه نام کلاس والد، مشخص می کنیم که کلاسمان از کلاس والد خود ارثبری داشته باشد.

کلاس توسعه دهنده یک کلاس، تمام توابع و متغیرهای کلاس اول را شامل می شود.

مثال:

<?php 
class a{
    function test()
    {
        echo "Test in class a"."<br />";
    }
    function show($var)
    {
        echo "in class a: the varible is $var"."<br />";
    }

class b extends a {
    function test()
    {
        echo "Test in class b"."<br />"; ;
    }

class c extends b {
    function test()
    {
        parent::test();
    }
}
class d extends c {
    function test()
    {
        a::test();
    }
}  
$a = new a();
$b = new b();
$c = new c();
$d = new d();
$a->test();
$b->test();
$b->show('Iran');
$c->test();
$d->test();

?>

خروجی کد بالا:

Test in class a 
Test in class b 
in class a: the varible is Iran 
Test in class b
Test in class a

توضیح مثال بالا:

  1. در مثال بالا کلاس a را تعریف کردیم و  a را در b توسعه داده و b را در کلاس c و کلاس c را نیز در d توسعه دادیم.
  2. برای اجرای یک تابع یا یک متغیر در یک کلاس دیگر می توانیم از نام کلاس و :: استفاده نماییم.(نام تابع یا متغیر کلاس والد::نام والد کلاس فعلی)
  3. توجه به این نکته نیز ضروری است که با استفاده از کلمه parent میتوانیم کلاس توسعه داده شده یا به اصطلاح والد را فراخوانی کنیم.