PHP interfeyslar
PHP interfeyslari
Interfeys class qanday umumiy usullarni amalga oshirishi kerakligini aniqlamasdan, ularni qanday amalga oshirish kerakligini aniqlash imkonini beradi.
Interfeyslar
interface kalit so‘zi va metodlari bilan e’lon qilinadi
interfeysda e’lon qilingan
public bo‘lishi kerak:
interface InterfaceName {
public function method1();
public function method2();
}Interfeysni amalga oshirish uchun class
implements kalit so‘zidan foydalanishi kerak.
Interfeysni amalga oshiradigan class interfeysning barcha usullarini amalga oshirishi kerak.
class ClassName implements InterfaceName{
public function method1() {
// some code
}
public function method2(){
// some code
}
}Quyidagi misolda bitta umumiy metod (makeSound()) bilan Animal nomli interfeys aniqlanadi. Cat va Dog klassi Animal interfeysini amalga oshiradi va ikkalasi ham makeSound() usulini o‘z ichiga olishi kerak:
Misol
<?php
// Define the interface
interface Animal {
public function makeSound();
}
// Implement the interface in a class
class Cat implements Animal {
public function makeSound() {
echo "Meow";
}
}
// Implement the interface in another class
class Dog implements Animal {
public function makeSound() {
echo "Woff";
}
}
$cat = new Cat();
$cat->makeSound();
$dog = new Dog();
$dog->makeSound();
?>
O‘zingiz sinab ko‘ring »
PHP - Interfeyslar va abstrakt classlar
Interfeys mavhum classlarga o‘xshaydi. Interfeyslar va mavhum classlar o‘rtasidagi farq:
- Interfeyslar xossalarga ega bo‘lolmaydi, mavhum classlar esa
- Barcha interfeys metodlari ommaviy bo‘lishi kerak, mavhum usullar esa ochiq yoki himoyalangan bo‘lishi mumkin
- Interfeysdagi barcha usullar mavhum, shuning uchun ularni kodda amalga oshirib bo‘lmaydi va mavhum kalit so‘z kerak emas.
- classlar bir vaqtning o‘zida boshqa classdan meros qilib olingan holda interfeysni amalga oshirishi mumkin
Interfeyslar turli xil classlardan bir xil tarzda foydalanishni osonlashtiradi. Bir yoki bir nechta classlar bir xil interfeysdan foydalansa, u "polimorfizm" deb ataladi.
PHP - Interfeyslardan foydalanish
Quyidagi misolda ikkita umumiy metod (fromFamily() va makeSound()) bilan Animal nomli interfeys aniqlanadi. Cat va Dog classi Animal interfeysini amalga oshiradi va ular ham fromFamily() va makeSound() usullarini o‘z ichiga olishi kerak:
Misol
<?php
interface Animal {
public function fromFamily();
public function makeSound();
}
class Cat implements Animal {
public function fromFamily() {
echo "From family: Felidae (Relatives: lions, tigers, jaguars, lynx, cougars, and cheetahs).<br>";
}
public function makeSound() {
echo "Sound: Meow.";
}
}
class Dog implements Animal {
public function fromFamily() {
echo "From family: Canidae (Relatives: wolves, foxes, coyotes, jackals, and domestic dogs).<br>";
}
public function makeSound() {
echo "Sound: Woff.";
}
}
echo "<h3>Cats</h3>";
$cat = new Cat();
$cat->fromFamily();
$cat->makeSound();
echo "<h3>Dogs</h3>";
$dog = new Dog();
$dog->fromFamily();
$dog->makeSound();
?>
O‘zingiz sinab ko‘ring »
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
