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 "اڏامي رهيو آهي";
}
}
انهيءَ طرح، مجازي ڪلاس جزوي عملدرآمد مقرر ڪري ٿو، جڏهن ته انٽرفيس صرف معاهدو آهي.