Junior — Middle
Obyekt yönümlü proqramlaşdırmada abstrakt sinif ilə interfeys arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
PHP-də abstrakt sinif və interfeys aşağıdakı fərqlərə malikdir:
-
Abstrakt sinif həm abstrakt metodlar (tərtib olunmamış), həm də tətbiq olunan metodlar və xüsusiyyətlər ehtiva edə bilər.
-
Interfeys yalnız metodların elanlarını ehtiva edir (PHP 8-dən etibarən standart tətbiqlər əlavə etmək mümkündür, lakin bu bir xüsusiyyətdir), vəziyyət (xüsusiyyətlər) ehtiva etmir.
-
Bir sinif yalnız bir abstrakt sinifdən irs ala bilər, lakin bir neçə interfeysi həyata keçirə bilər.
-
Abstrakt sinif əsas tətbiqi və ümumi müqaviləni müəyyən etmək üçün istifadə olunur, interfeys isə yalnız müqaviləni müəyyən etmək üçün istifadə olunur.
Nümunə:
abstract class Animal {
abstract public function makeSound();
public function sleep() {
echo "Yatır";
}
}
interface CanFly {
public function fly();
}
class Bird extends Animal implements CanFly {
public function makeSound() {
echo "Cıvıldamaq";
}
public function fly() {
echo "Uçmaq";
}
}
Beləliklə, abstrakt sinif qismən tətbiqi müəyyən edir, interfeys isə yalnız müqaviləni.