Junior — Middle
Объектке багытталган программалоодо абстракттуу класс менен интерфейс кандай айырмаланат?
sobes.tech AI
AIден жооп
PHPде абстракттуу класс жана интерфейс төмөндөгүлөргө ээ:
-
Абстракттуу класс абстракттуу ыкмаларды (реализациясыз) жана ошондой эле реализацияланган ыкмалар жана мүлктөрдү камтышы мүмкүн.
-
Интерфейс гана ыкмалардын жарыяларын камтыйт (PHP 8ден баштап, алдын ала орнотууларды кошуу мүмкүн, бирок бул өзгөчөлүк), абалы (мүлктөр) камтыбайт.
-
Бир класс гана бир абстракттуу классынан мурас алат, бирок бир нече интерфейстерди ишке ашыра алат.
-
Абстракттуу класс негизги реализацияны жана жалпы келишимди аныктоо үчүн колдонулат, ал эми интерфейс — тек гана келишимди аныктоо үчүн.
Мисал:
abstract class Animal {
abstract public function makeSound();
public function sleep() {
echo "Уктайт";
}
}
interface CanFly {
public function fly();
}
class Bird extends Animal implements CanFly {
public function makeSound() {
echo "Чирп";
}
public function fly() {
echo "Учуп жатат";
}
}
Ошентип, абстракттуу класс жарым реализацияны аныктайт, ал эми интерфейс — гана келишим.