آرتا رسانه

آموزش برنامه نویسی PHP-جلسه هجدهم

 

Abstract Classes

در طراحی توابع یا شی‌ها نیاز داریم فانکشن هایی داشته باشیم که کارکرد متفاوتی داشته باشند ولی اسامی یکسانی داشته باشند. این فانکشن در کلاس مادر وجود دارد که در طول برنامه توسط بچه‌های والد کارایی تابع را تعیین می‌کنند.

<?php
// Parent class
abstract class Car {
  public $name;
  public function __construct($name) {
    $this->name = $name;
  }
  abstract public function intro() : string;
}

// Child classes
class Audi extends Car {
  public function intro() : string {
    return “Choose German quality! I’m an $this->name!”;
  }
}

class Volvo extends Car {
  public function intro() : string {
    return “Proud to be Swedish! I’m a $this->name!”;
  }
}

class Citroen extends Car {
  public function intro() : string {
    return “French extravagance! I’m a $this->name!”;
  }
}

// Create objects from the child classes
$audi = new audi(“Audi”);
echo $audi->intro();
echo “<br>”;

$volvo = new volvo(“Volvo”);
echo $volvo->intro();
echo “<br>”;

$citroen = new citroen(“Citroen”);
echo $citroen->intro();
?>

                                                                                                Interfaces

بسیار شبیه کلاس‌ها هستند. اگر بخواهیم متغیرهایی را در طول کل برنامه استفاده کنیم از interface که رابط برقراری ارتباط بین کلاس‌ها و متغیرهای مختلف هستند استفاده می‌کنیم. تا یکسری متغیرها و توابعی که کارکرد عمومی دارند را تعریف کنیم. برای ساخت interface کافیه یک اسم دلخواه را بنویسیم و قبلش یک interface قرار بدهیم.

  <?php
// Interface definition
interface Animal {
  public function makeSound();
}

// Class definitions
class Cat implements Animal {
  public function makeSound() {
    echo ” Meow “;
  }
}

class Dog implements Animal {
  public function makeSound() {
    echo ” Bark “;
  }
}

class Mouse implements Animal {
  public function makeSound() {
    echo ” Squeak “;
  }
}

// Create a list of animals
$cat = new Cat();
$dog = new Dog();
$mouse = new Mouse();
$animals = array($cat, $dog, $mouse);

// Tell the animals to make a sound
foreach($animals as $animal) {
  $animal->makeSound();
}
?>

داخل interface توابع رو می‌سازیم هر جا لازمه برای کلاسی interface رو استفاده کنیم با کلمه implements اسم interface که همون Animal می‌آوریم. و اون تابع داخل این کلاسی قابل تعریف مجدد میشه. Interface کمک میکنه توابع یا متغیرهایی را بین کلاس‌های مختلف ب اشتراک بگذارید.

آرتا رسانه
آرتا رسانه
دیجیتال مارکتینگ چیست؟
Loading
/
پیمایش به بالا