Junior — Middle
Obyektga yo'naltirilgan dasturlashda abstrakt sinf va interfeys qanday farq qiladi?
sobes.tech AI
AIdan javob
PHP'da abstrakt sinf va interfeys quyidagi farqlarga ega:
-
Abstrakt sinf abstrakt metodlar (implementatsiyasiz) va shuningdek, implementatsiyali metodlar va xususiyatlarni o'z ichiga olishi mumkin.
-
Interfeys faqat metodlar e'lonlarini o'z ichiga oladi (PHP 8 dan boshlab, standart implementatsiyalar qo'shish mumkin, ammo bu xususiyat), holat (xususiyatlar) emas.
-
Bir sinf faqat bitta abstrakt sinfdan meros olishi mumkin, lekin bir nechta interfeyslarni amalga oshirishi mumkin.
-
Abstrakt sinf asosiy implementatsiya va umumiy shartnoma belgilash uchun ishlatiladi, interfeys esa faqat shartnoma belgilash uchun ishlatiladi.
Misol:
abstract class Animal {
abstract public function makeSound();
public function sleep() {
echo "Uyquda";
}
}
interface CanFly {
public function fly();
}
class Bird extends Animal implements CanFly {
public function makeSound() {
echo "Chirp";
}
public function fly() {
echo "Uchmoqda";
}
}
Shu tarzda, abstrakt sinf qisman implementatsiyani belgilaydi, interfeys esa faqat shartnomani.